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

Каталог копирования Salt-Stack от мастера соли к миньону

Задний план: Я работал над настройкой соляной среды и дошел до точки, когда я хочу распространять не только файлы, но и каталоги. Я обнаружил, что наиболее разумный способ сделать это - поместить каталог, в который я хочу скопировать /srv/salt/path_to_dir на мастере, а затем используйте cp.get_dir команда распространять его.

Что я наделал: Чтобы проверить настройку и команду, которую я создал /srv/salt/tmp/foo и поместил в него два файла. Затем, когда я запускаю команду salt minion_name cp.get_dir salt://tmp/foo /tmp/foo на мастере есть одна строка вывода, которая читает точно minion_name:. Несколько странно, что нет вывода, кроме имени миньона, даже ошибки, но хорошо, я иду проверить миньона, чтобы узнать, не произошло ли что-нибудь.

На миньоне не оказалось в /tmp/, и в /etc/salt/ или /var/cache/salt/ либо. я зарегистрировалась /var/log/salt/minion, но нет ничего, кроме моих часовых попыток выяснить, почему я не могу использовать file.copy с рекурсией, установленной в true для распространения файлов.

Мои вопросы): Есть ли что-нибудь очевидное, что я сделал не так? Согласно документации, я обнаружил, что то, что я сделал, должно работать. Кажется, тоже нет вывода ошибок. Стоит ли мне попробовать использовать другую команду или подход для распределения папок с содержимым из мастера через соль?

Дополнительная информация: И мастер, и все миньоны являются системами Debian. Установленные версии соли salt 2014.1.3 (Hydrogen) на хозяине и salt-minion 0.17.5 и salt-minion 2015.5.3 на миньонах, с которыми я пробовал этот подход.

Я не уверен, как вы можете сделать это с помощью модулей, я пробовал те же самые, что и вы, и получил те же результаты, поэтому, возможно, это ошибка, но если вы хотите настроить состояние sls, вы можете использовать функцию file.recurse, это выглядит так:

в качестве ссылки я использую:

  • /srv/salt/test1/init.sls как мой файл sls,
  • внутри test1 это src каталог testdir
  • наш цель на машине, которую мы хотим скопировать, /test

init.sls

/test:
 file.recurse:
  - source: salt://test1/testdir
  - include_empty: True

с этого момента вы можете

salt '<targetmachine>' state.sls test1