web-dev-qa-db-ja.com

ソルトマスターからミニオンへのソルトスタックコピーディレクトリ

背景:ソルト環境のセットアップに取り組んでおり、ファイルだけでなくディレクトリも配布したいところに到達しました。これを行う最も賢明な方法は、コピーするディレクトリをマスターの_/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_です。

4
simonra

モジュールを使用してこれを行う方法がわからない、私は同じことを試し、同じ結果、つまりバグかもしれませんが、sls状態を設定したい場合は、file.recurse機能を使用できます。次のようになります。

参考として私が使用しています:

  • /srv/salt/test1/init.sls私のslsファイルとして、
  • 内部test1srcディレクトリですtestdir
  • コピー先のマシン上のtarget/test

init.sls

/test:
 file.recurse:
  - source: salt://test1/testdir
  - include_empty: True

その時点からできる

salt '<targetmachine>' state.sls test1
5
Gravy