ansible-tower/

Ansible — это средство управления конфигурациями, аналогичное Chef, Puppet и Salt. Если вам нужно раскатывать deb-пакеты и конфиги по множеству машин в разных окружениях (всякие dev, stage, prod), то следует серьезно задуматься об использовании одного из этих средств. Сам по себе Ansible представляет собой CLI. Ansible Tower — это веб-интерфейс для Ansible. CLI можно использовать бесплатно, веб-морда стоит 99$ в месяц.

Недавно я решил попробовать Anible Tower. Данная заметка расскажет вам, что же из этого вышло.

Следует принять во внимание, что Ansible и Ansible Tower тянут за собой много разных зависимостей. Чтобы не засорять систему, я бы советовал держать все это хозяйство внутри какого-нибудь Vagrant . При этом Ansible Tower довольно требователен к памяти. Чтобы при работе с ним не получить кучу мистических ошибок, советую сразу выделить хотя бы 2 Гб памяти.

Для начала нам потребуется установить сам Ansible:

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible / ansible
sudo apt-get update
sudo apt-get install ansible

В теории , дальше можно ставить Ansible Tower, но у меня он не смог своими силами подтянуть и настроить PostgreSQL . Соответствующая ошибка:

failed: [127.0.0.1] => {«failed»: true}
msg: Destination directory /etc/postgresql/9.3/main does not exist

FATAL: all hosts have already failed — aborting

Поэтому сначала нам придется установить СУБД по данной инструкции . Впрочем, по ней PostgreSQL встает тоже со скрипом. Чтобы все завелось, мне пришлось дополнительно сказать:

sudo pg_createcluster 9.3 main —start

Вот теперь качаем Ansible Tower , распаковываем, правим файл group_vars/all. В нем нужно поменять четыре пароля — от PostgreSQL, Munin, RabbitMQ и собственно пароль от Tower. Справиться с задачей вам поможет pwgen. Теперь говорим:

. / setup.sh

Tower по умолчанию слушает порт 80 на всех интерфейсах. Входим с логином admin и паролем что указали в group_vars/all. После логина Tower запросит license key. Там будет ссылка на получение free trial. Письмо приходит быстро.

Если все было сделано правильно, то теперь вы можете приступить к настройке Inventory / Project / Credential / Job Template. Все это не сложно и в деталях описано в Ansible Tower User Guide .

Примите во внимание, что хотя в Tower и есть галочки «ходить на сервер под обычным юзером, а потом говорить sudo», это не работает. Лично у меня все получилось только с юзером root. Если не ошибаюсь, на шаге Gathering Facts глупенький Tower игнорирует настройки Credential и все равно ломится на сервера, как root. В итоге получаем Authentication Failure. А еще для каких-то настроек все равно приходится заходить на машину с Tower по ssh и править yaml-файлы в vim’е . Наконец, меня очень расстроил сапорт , который не откликнулся, когда я столкнулся с проблемами при установке Tower. И что намного хуже, переписка с сапортом не индексируется поисковыми системами, поэтому о возникающих проблемах и путях их решения потенциальные клиенты вынуждены узнавать из постов вроде этого.

В общем и целом, на момент написания этих строк Ansible Tower произвел на меня впечатление исключительно сырого глюкавого продукта с негодной поддержкой. Денег, которые за него хотят, Ansible Tower совершенно точно не стоит. Поэтому я бы советовал либо работать с Ansible из консоли, либо, если вам обязательно нужен Web UI, присмотреться к альтернативным решениям, например, Chef.

А какие средства управления конфигурациями вы используете и каковы ваши впечатления от них?

Дополнение: Появился открытый проект, основанный на Ansible Tower, под названием AWX. Подробности можно найти на ansible.com , а также в тексте соответствующей новости на linux.org.ru .

EnglishRussianUkrainian