Установка
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 (зерна)