Система управления конфигурациями Ansible


Системы управления конфигурациями это инструмент, который позволяет автоматически настраивать систему под определенную задачу. Например вы устанавливаете операционную систему на свой сервер, пишете рецепт для настройки почтового сервера на одной из таких систем (Chef, Puppet, CFengine или Ansible) или даже берёте готовый рецепт, потом запускаете его и получаете полностью настроенный сервер. Плюс такого подхода в том, что исключается ручное взаимодействие с сервером, увеличивается воспроизводимость.

Из всех подобных систем мне больше всего нравился Ansible. Из её плюсов я бы выделил следующие:

  • это agentless система, т.е. на удалённый компьютер не нужно устанавливать никаких дополнительный приложений
  • для создания сценариев используется YAML
  • в качестве транспорта используется ssh

Я давно хотел его попробовать в деле, но всё не находилось подходящей задачи. И тут как раз подвернулся случай: мне с некоторой периодичностью нужно настраивать окружение для портирования приложений в OpenBSD. Нужно каждый раз делать одни и те же действия:

  • установить необходимые пакеты
  • настроить пару репозиториев
  • отредактировать конфигурационные файлы

и я решил это автоматизировать.

Получился такой сценарий - Github.

Я записал небольшое демо на asciinema, чтобы можно было посмотреть как это выглядит, даже если у вас нет под рукой OpenBSD и установленного ansible :)

Кстати, asciinema - отличный инструмент для записи скринкастов в терминале. До сих пор не понимаю, почему люди записывают полноценное видео для таких целей. Вот ещё скринкаст с моим любимым скринсейвером ascii aquarium.

Метки: productivity