Автоматизация администрирования серверов для Веб при помощи Salt.
SaltStack или коротко Salt - это Open Source система централизованного управления конфигурацией операционных систем и программ, установленных на серверах. Система достаточно мощная, масштабируемая и позволяет управлять десятками тысяч серверов одновременно и быстро.
Salt система аналогичная Chef и Puppet, но в отличии от них написан на языке Python, который пока является основным языком автоматизации у Linux администраторов и DevOps. Кроме этого, он относительно менее требователен к ресурсам и немного проще в использовании (на наш взгляд). Salt использует на сетевом уровне проверенную библиотеку ZeroMQ, что позволяет обновлять конфигурацию серверов очень быстро.Две основные функции Salt: управление конфигурацией и удаленное выполнение команд. Работать с Salt можно только из командной строки. Благодаря этому систему просто установить и начать использовать даже на слабом оборудовании. В любом случае, большинство Linux или UNIX серверов не включают в себя графический интерфейс.
Способы работы с Salt.
Использование Salt без установки Мастера.
Основная архитектура Salt состоит в установке централизованного master и Salt minions (клиентов) на удаленные машины.
Однако, вы можете использовать Salt и для настройки одного единственного сервера. Для этого достаточно установить на сервер только minion. Он содержит широкие функциональные возможности для самостоятельной работы и предназначен для:
- Использования команды salt-call в системе без подключения к мастеру
- Запуска сценариев конфигурирования локально, по аналогии, как это делается с Мастера для удаленных серверов
Конфигурационные файлы при этом расположены также как на Мастере:
minion# ls /srv
formulas pillar salt
master# salt remote-host state.highstate
minion# salt-call state.highstate
Выполнение команд Salt через SSH без установки minion.
Вы можете использовать Salt для автоматизации работы с серверами при помощи SSH без установки minion на управляемые узлы. Для этого нужно установить пакет salt-ssh на Мастер сервер Salt. Для Debian и Ubuntu это можно сделать так:
master:~$ sudo add-apt-repository ppa:saltstack/salt
master:~$ sudo apt-get install salt-ssh
master:~$ sudo dpkg -l | grep salt-ssh
ii salt-ssh 2015.5.3+ds-1trusty1 all remote manager to administer servers via salt
master# cat /etc/salt/roster
web1:
host: web1
user: useradmin
passwd: admin_pass
sudo: True
web1:~$ cat /etc/sudoers | grep useradmin
useradmin ALL=(ALL) NOPASSWD: ALL
root@master:~# salt-ssh -i '*' cmd.run "service nginx status"
Executing job with jid 20151224154255487679
-------------------------------------------
web1:
* nginx is running
Или:
root@master:~# salt-ssh -v web1 cmd.run "du -sch /var/log"
Executing job with jid 20151218192723210705
-------------------------------------------
web1:
11G /var/log
11G total