0

SVN サーバーからレシピで使用する必要があるファイルをシェフにダウンロードさせるのに問題があります。

subversion "download installer" do
  repository "http://svnrepourl/path/to/installer.msi"
  revision "HEAD"
  destination "C:\\chef-repo\\cookbooks\\common\\files"
  action :export
  svn_username "username"
  svn_password "password"
end

シェフクライアントの実行結果は次のとおりです。

Compiling Cookbooks...
Converging 1 resources
Recipe: common::svntest
  * subversion[download installer] action export[2014-01-09T14:41:42-05:00] INFO
: Processing subversion[download installer] action export (common::svntest line
12)
 (up to date)
[2014-01-09T14:41:42-05:00] INFO: Chef Run complete in 1.482104 seconds
[2014-01-09T14:41:42-05:00] INFO: Running report handlers
[2014-01-09T14:41:42-05:00] INFO: Report handlers complete
Chef Client finished, 0 resources updated

12行目は「subversion "download installer" do」です。非常に役立つ出力ではありません-ここで何が起こっているのかわかりません。システムのどこにもファイルをダウンロードしません-宛先ディレクトリは空です。

このコマンドを実行するとうまくいきます:

svn export -r HEAD http://svnrepourl/path/to/installer.msi --username username --password password C:\chef-repo\cookbooks\common\files

サーバーからファイルを正常にダウンロードし、宛先に配置します。これで、このコマンドを実行ブロックに記述できますが、これは Chef の方法で行いたいと思います。WindowsのSVNリポジトリから特定のファイルをダウンロードするにはどうすればよいですか?

4

1 に答える 1

0

これは Chef のバグのようで、ここに文書化されています。

これを理解するために、私は を実行しましたchef-client -l debug > log.txt。これにより、次の行にたどり着きました。

[2014-01-10T09:35:00-05:00] INFO: Processing subversion[download installer] action export (common::svntest line 12)
[2014-01-10T09:35:00-05:00] DEBUG: subversion[download installer] export destination C:\chef-repo\cookbooks\common\files already exists or is a non-empty directory - nothing to do

Chef サブバージョン リソースには、宛先として空のディレクトリが必要なようです (OP で指定した宛先には、単一のフォルダーが含まれています)。これは svn シェル コマンドには当てはまらないことに注意してください。これを使用して、空でないディレクトリに正常にエクスポートできました。

この時点で、実行リソースを使用して必要なファイルを取得し、Opscode がこの長年のバグを修正してくれることを願っています。

Chef の IRC コミュニティに感謝します。

于 2014-01-10T14:49:51.170 に答える