web-dev-qa-db-ja.com

ソルトスタックでマスターからミニオンにファイルをコピーする方法は?

ソルトスタックマスターサーバーからミニオンサーバーにファイルをコピーしたい。 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:

私は両方に正しいパスを与えました。

2
Janith

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
1
agm650

状態の一部としてではなく単にファイルをコピーするには、 salt-cp

ソースはマスター上の任意のファイルにすることができます。 saltファイルサーバー内にある必要はありません。

salt-cp '*' SOURCE [SOURCE2 SOURCE3 ...] DEST
2
OrangeDog