Установка
yum install salt-master - ставим на сервер yum install salt-minion - ставим на клиент salt-master - система управления конфигурации (ставят на сервер) salt-minion - демон ожидающий команд мастера (ставят на клиенты)
Управление доступам
На клиенте в конфиг файле нужно указать master:ip и он сам сходит на сервер На сервере: salt-key -L - показать ключи sakt-key -y -a 192.168.1.50 - принять ключ от хоста с ip 192.168.1.50
Пример настройки конфигурации групп для salt
# /etc/salt/master.d/file_roots.conf file_roots: base: - /etc/salt/base # /etc/salt/master.d/groups.conf nodegroups: test1: "l@192.168.1.126,192.168.1.127" # список миньонов test2: "G@os:CentOS" # объединяем в группу хосты на которых ос CentOS service salt-master restart
Используем salt:
salt '*' cmd.run uptime - выполнить на всех миньонах ('*') команду uptime salt -N test cmd.run uptime - выполним команду uptime для хостов из группы test salt -N test test.ping - выполним команду test.ping для хостов из группы test
Пример установки демона ntp с помощью salt
mkdir /etc/salt/base # /etc/salt/base/ntp.conf driftfile /var/lib/ntp/drift logfile /var/log/ntpstats/ntp.log resterict default kod nomodify notrap nopeer noquery restrict -6 default kod modify notrap nopeer noquery restrict 127.0.0.1 restrict -6 ::1 server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst includefile /etc/ntp/crypto/pw keys /etc/ntp/keys # /etc/salt/base/ntpd.sls install ntpd: pkg.installed: - name: ntp service.running: - name: ntpd - enable: True /etc/ntp.conf: file.managed: - source: salt://ntp.conf - user: root - group: root - mode: 644 - template: jinja service ntpd stop: cmd.run ntpdate -b 0.centos.pool.mtp.org: cmd.run service ntpd start: cmd.run salt -N test state.apply ntpd test=True - выполняем проверочный запуск установки ntpd из шаблона в тестовом режиме (просто продемонстрирует что он сделает, но делать этого не будет) salt -N test state.apply ntpd - выполняем установку из шаблона ntpd
grains \ зерна
salt -N test grains.item - показать доступные grains (зерна)