背景:ソルト環境のセットアップに取り組んでおり、ファイルだけでなくディレクトリも配布したいところに到達しました。これを行う最も賢明な方法は、コピーするディレクトリをマスターの_/srv/salt/path_to_dir
_に配置し、 cp.get_dir コマンドを使用してそれを配布することです。
私がやったこと:セットアップとコマンドをテストするために_/srv/salt/tmp/foo
_を作成し、2つのファイルを配置しました。次に、マスターでコマンド_salt minion_name cp.get_dir salt://tmp/foo /tmp/foo
_を実行すると、正確に_minion_name:
_を読み取る出力が1行あります。ミニオンの名前以外に出力がなく、エラーもあるという少し奇妙なことですが、問題ありません。
ミニオンでは、それは_/tmp/
_に表示されておらず、_/etc/salt/
_または_/var/cache/salt/
_にも新しいコンテンツはありません。 _/var/log/salt/minion
_をチェックインしましたが、ファイルを配布するために再帰をtrueに設定して_file.copy
_を使用できない理由を理解するための1時間前の試み以外には何もありません。
私の質問:私が間違ったことをしたことは明らかですか?ドキュメントによると、私がやったことはうまくいくはずです。エラー出力もないようです。別のコマンドまたはアプローチを使用して、代わりにコンテンツを含むフォルダーをマスターからソルト経由で配布する必要がありますか?
追加情報:マスターとすべてのミニオンは両方ともDebianシステムです。インストールされているsaltのバージョンは、マスターではsalt 2014.1.3 (Hydrogen)
で、私がこのアプローチを試したミニオンでは_salt-minion 0.17.5
_および_salt-minion 2015.5.3
_です。
モジュールを使用してこれを行う方法がわからない、私は同じことを試し、同じ結果、つまりバグかもしれませんが、sls状態を設定したい場合は、file.recurse機能を使用できます。次のようになります。
参考として私が使用しています:
/srv/salt/test1/init.sls
私のslsファイルとして、test1
はsrcディレクトリですtestdir
/test
init.sls
/test:
file.recurse:
- source: salt://test1/testdir
- include_empty: True
その時点からできる
salt '<targetmachine>' state.sls test1