saltstack динамически обновляет узлы etc

#salt-stack #configuration-management

#солевой стек #конфигурация-управление

Вопрос:

Как динамически обновлять файл / etc / hosts с помощью saltstack.

Есть пример, который отлично работает с ansible, но не знаю, как это сделать с помощью salt.

http://xmeblog.blogspot.fr/2013/06/ansible-dynamicaly-update-etchosts.html

   - name: add hostname in /etc/hosts
    lineinfile: dest=/etc/hosts regexp='.*{{ item }}$' line="{{ hostvars[item]['ansible_default_ipv4']['address'] }} {{item}}" state=present
    when: hostvars[item]['ansible_default_ipv4']['address'] is defined
    with_items: groups['all']
  

Это обновит /etc / hosts всеми ansible hosts-ip и адреса хостов, доступные в файле инвентаризации.

Как это возможно с солью? Я хочу собрать все IP-адреса minions и имя хоста и обновить их для всех minions / etc / hosts.

 minion1 => ip (192.168.1.1) hostname is (example1.net)
minion2 => ip (192.168.1.2) hostname is (example2.net)
minion3 => ip (192.168.1.3) hostname is (example3.net)
  

Во всех файлах minions / etc / hosts запись в файле должна быть такой:

 127.0.0.1 localhost
::1 localhost
192.168.1.1  example1.net
192.168.1.2  example2.net
192.168.1.3  example3.net
  

Ответ №1:

Пожалуйста, взгляните на https://github.com/saltstack-formulas/hostsfile-formula , надеюсь, это соответствует вашим потребностям.

Эта конкретная формула позволяет «автоматически» создавать /etc/hosts записи для всех известных миньонов.

Пожалуйста, нет, я заметил, что ссылка на формулу в документации по формулам не работает, попробуйте эту вместо инструкций по установке и использованию формул соли.


Объяснены формулы соли

Формулы представляют собой предварительно записанные состояния соли. Они такие же открытые, как и сами состояния соли, и могут использоваться для таких задач, как установка пакета, настройка и запуск службы, настройка пользователей или разрешений и многих других общих задач.