Краткое содержание решения: Использование PILLAR.FILE_TREE
A: На вашем главном компьютере настройте каталог, из которого вы будете обслуживать личные файлы (например, / srv / salt / private).).
B: Под этим создайте подкаталог «hosts», а затем под ним создайте каталог для каждого из хостов, который будет иметь личные файлы.
/srv / salt / private / hosts / hostA
/ srv / salt / private / hosts / hostB
… где hostA и hostB - этоидентификаторы целевых миньонов.
См. документы, если вы хотите использовать группы узлов вместо идентификаторов хоста.
C: поддиректории хоста, включите любые файлы, которые вы хотите передать через колонку.
echo “I am Foo\!” > /srv/salt/private/hosts/hostA/testme
D: В ваш главный конфигурационный файл (например, / etc / salt / master) включите следующий раздел:
ext_pillar:
- file_tree:
root_dir: /srv/salt/private
follow_dir_links: False
keep_newline: True
debug: True
E: Создать файл состояния состояния для обработки передачи.
cat > /srv/salt/files/base/foo.sls << END
/tmp/pt_test:
file.managed:
- contents_pillar: testme
END
F: Запустить обновление столба, а затем выполнить команду состояния:
salt hostA state.apply foo
После tНа последнем этапе hostA должен иметь файл с именем / tmp / pt_test, содержащий текст «Я - Фу!».