Назад | Перейти на главную страницу

Как скопировать файл от мастера к миньону в солончаке?

Я хочу скопировать файл с главного сервера солевого стека на серверы миньонов. Я нашел сценарий от 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:

Я указал правильные пути для обоих.

Чтобы просто скопировать файл, а не как часть состояния, используйте salt-cp.

Источником может быть любой файл на мастере. Он не обязательно должен находиться на солевом файловом сервере.

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

file.recurse предназначен для копирования содержимого каталога, если я прав. Здесь то, что вам нужно сделать, чтобы скопировать только один файл, - это использовать file.managed.

Например, повторно используя ваш пример, это должно работать:

copy_my_files:
  file.managed:
    - name: /etc/nginx/nginx.conf
    - source: salt://nginx.conf
    - makedirs: True

Обратите внимание, что файл nginx.conf, который вы хотите скопировать, должен находиться в / srv / salt на мастере соли. Это место по умолчанию, на которое указывает соль: // (если вы не изменили свою конфигурацию)

Если вы хотите скопировать несколько файлов с помощью file.recurse это также довольно просто

deploy linter configuration:
  file.recurse:
    - name: "/usr/local/linter"
    - source: salt://devtools/files/linter
    - makedirs: True
    - replace: True
    - clean: True