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