Как я устанавливал Ansible Tower и был в печали
26 января 2015
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-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
В теории, дальше можно ставить Ansible Tower, но у меня он не смог своими силами подтянуть и настроить PostgreSQL. Соответствующая ошибка:
msg: Destination directory /etc/postgresql/9.3/main does not exist
FATAL: all hosts have already failed -- aborting
Поэтому сначала нам придется установить СУБД по данной инструкции. Впрочем, по ней PostgreSQL встает тоже со скрипом. Чтобы все завелось, мне пришлось дополнительно сказать:
Вот теперь качаем Ansible Tower, распаковываем, правим файл group_vars/all. В нем нужно поменять четыре пароля — от PostgreSQL, Munin, RabbitMQ и собственно пароль от Tower. Справиться с задачей вам поможет pwgen. Теперь говорим:
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.
Метки: Linux.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.