ソルトスタックマスターサーバーからミニオンサーバーにファイルをコピーしたい。 https://stackoverflow.com/questions/27687886/copy-a-file-from-salt-master-to-minions からスクリプトを見つけました。しかし、エラーが発生しました。
copy_my_files:
file.recurse:
- source: salt://srv/salt/nginx.conf
- target: /etc/nginx
- makedirs: True
エラー:-
ID: copy_my_files
Function: file.recurse
Result: False
Comment: Specified file copy_my_files is not an absolute path
Started: 09:46:24.850682
Duration: 1.473 ms
Changes:
私は両方に正しいパスを与えました。
file.recurseは、私が正しい場合にディレクトリの内容をコピーするためのものです。ここで、1つのファイルだけをコピーするために必要なことは file.managed を使用することです。
たとえば、例を再利用すると、これはうまくいくはずです:
copy_my_files:
file.managed:
- name: /etc/nginx/nginx.conf
- source: salt://nginx.conf
- makedirs: True
コピーするnginx.confファイルは、ソルトマスターの/ srv/saltにある必要があります。これは、salt://が指しているデフォルトの場所です(設定を変更しない限り)。
file.recurse を使用して複数のファイルをコピーする場合も非常に簡単です
deploy linter configuration:
file.recurse:
- name: "/usr/local/linter"
- source: salt://devtools/files/linter
- makedirs: True
- replace: True
- clean: True
状態の一部としてではなく単にファイルをコピーするには、 salt-cp
。
ソースはマスター上の任意のファイルにすることができます。 saltファイルサーバー内にある必要はありません。
salt-cp '*' SOURCE [SOURCE2 SOURCE3 ...] DEST