среда, 7 августа 2013 г.

Установка SaltStack на Debian/Ubuntu и несколько примеров

Добрый день.

Сегодня я напишу первую, вводную часть о прекрасном ПО SaltStack, что же это такое? Грубо говоря, это способ асинхронного запуска команд на любом количестве серверов в неблокируемом режиме. Так же с его помощью можно сконфигурировать сервер, развернуть проект на сервере. Не скромно говоря - это серьезный соперник для Chef, Puppet, Fabric. Обладает очень хорошей документацией, очень активно развивается (топ 10 по числу разработчиков на GitHub  2012 году). При всем при этом, это Open Source проект.

Сразу скажу, что бы не было непоняток:
Salt-master - Сервер который управляет клиентами salt-minion'ами.



Установка SaltStack Debian

Установка крайне проста, что не может не радовать. Для трех версий Debian'a необходимо использовать различные источники пакетов, вот приведены команды для каждой из версий:
Squeeze 6 (Old Stable)
# echo "deb http://debian.saltstack.com/debian squeeze-saltstack main" > /etc/apt/sources.list.d/salt.list
# echo "deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free" > /etc/apt/sources.list.d/salt.list

Wheezy 7 (Stable)
# echo "deb http://debian.saltstack.com/debian wheezy-saltstack main" > /etc/apt/sources.list.d/salt.list

Sid (Unstable)
# echo "deb http://debian.saltstack.com/debian unstable main" > /etc/apt/sources.list.d/salt.list

Дальнейшие действия для всех версий одинаковы.
Активируем ключ:
# wget -q -O- "http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key" | apt-key add -

Обновим список доступных пакетов:
# apt-get update

Если хотим установить salt-master, то:
# apt-get install salt-master

Если же, хотим установить salt-minion, то:
# apt-get instal salt-minion

Установка SaltStack Ubuntu 

Первый способ (трувей для Ubuntu):

Добавим репозиторий saltstack'a:
# sudo add-apt-repository ppa:saltstack/salt
Если вдруг у вас в системе не оказалось утилиты: add-apt-repository, не беда, установим:
# sudo apt-get install python-software-properties

Второй способ (более костыльный):

# echo "deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main" | sudo tee /etc/apt/sources.list.d/salt.list
# wget -q -O- "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6" | sudo apt-key add -

Дальнейшие действия независимы от способа установки, который вы выбрали:
# sudo apt-get update

Установка salt-master'a:
# sudo apt-get install salt-master

Установка salt-minion'a:
# sudo apt-get install salt-minion

Начало работы

По умолчанию salt-master доступен на всех интерфейсах, если вы хотите изменить и назначить определенный интерфейс, то отредактируем конфигурационный файл:
# sudo nano /etc/salt/master
раскоментируем строку #interface: 0.0.0.0 и заменим 0.0.0.0 на нужный нам IP-адресс, у меня это будет 192.168.3.161, значит строка будет выглядеть так:
interface: 192.168.3.161

Теперь необходимо отредактировать конфигурационный файл salt-minion'ов, что бы они обращались к нашему salt-master серверу.

На каждом salt-minion отредактируем файл:
# sudo nano /etc/salt/minion
И строку #master: salt приведем к такому виду: master: 192.168.3.161 (IP-адресс Salt-master'a)

Перезапустим salt-minion:
# sudo salt-minion -d (флаг -d означает работу minion'a в качестве демона)

Теперь можно приступать к работе с salt-master. Для того, что бы работать с minion'ами необходимо принять запросы от них. Для просмотра, кто же хочет протиснуть свои ключи нужно воспользоваться командой:
# salt-key -L

Вывод будет примерно таким:
Где видно, что у нас есть два неподтвержденных ключа: asidorov.ntbsoft.com и auto.ntbsoft.com, по умолчанию minion'ы отображаются на master'e их FQDN именами. Что бы разрешить доступ можно воспользоваться такой командой:
# salt-key -a auto.ntbsoft.com

# salt-key -L
Видим, что ключ для auto.ntbsoft.com мы подтвердили, но не вводить же так каждого клиента когда их десятки, сотни, тысячи... можно воспользоваться аргументом -A:
# salt-key -A # будет запрошен аналогичный запрос, как у -a для каждого minion'a

Для удалению minion'ов будет интересен флаг -d:
# salt-key -d auto.ntbsoft.com

Теперь сделаем такой своеобразный "hello world":
Проверим, живи ли наши minion'ы:
# salt '*' test.ping

# salt '*' cmd.run 'uptime'

# salt '*' cmd.exec_code python "import sys; print sys.version"
# salt '*' sys.doc
Вывод справки с возможными командами.

Это первая, вводная заметка по SaltStack, надеюсь в будущем я распишу более подробно об этой удивительной утилите.

Ссылки:
Официальный сайт SaltStack: тыц
GitHub проекта: тыц

Комментариев нет:

Отправить комментарий