Рубрики
система управления конфигурациями

salt-master / salt-minion / система управления конфигурациями

Установка

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 (зерна)