Удобная настройка Sensu с Ansible

Так как я использую Sensu для мониторинга, и Ansible для управления конфигурациями, то конечно же я настраиваю Sensu с помощью Ansible.

В этой связке меня смущало только одно - Sensu использует JSON для конфигов, в то время как Ansible использует YAML. Поскольку JSON является подмножеством YAML, и описывать конфигурации в YAML гораздо проще (никаких проблем с запятыми, скобочками), хотелось писать в YAML и транслировать в JSON.

Начал я, конечно, с использования …

more ...

Инфраструктура как код

Есть такой тренд сейчас - работать с IT-инфраструктурой как с кодом. Хорошо цель этого метода описывается этой цитатой:

“Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal resources”

-- Jesse Robins

Я полностью поддерживаю эту идею, причем именно в этой трактовке.

Если говорить про парадигму, которую нам предлагает этот метод, то вот она:

Поддерживать модульную, легко поддающуюся автоматизации инфраструктуру, и описывать …

more ...

Модуль zabbix_maintenance

Свершилось чудо, и мой модуль для Ansible, который умеет создавать и удалять периоды "в обслуживании" в Zabbix, наконец-то приняли в апстрим. Это уже третий мой модуль, принятый в апстрим Ansible.

Краткая история:

Модуль этот я запушил еще в 26 ноября 2013 года, но 21 декабря cove написал в комментарии к моему модулю, что планирует выложить целую пачку модулей для взаимодействия с Zabbix из Ansible. Это отложило принятие моего модуля в …

more ...

Ansible и serverspec

Когда я готовил playbook для своего VPS, я взял за основу Sovereign. В этом репозитории меня заинтересовал файл tests.py, содержащий тесты для результирующего сервера. У меня сразу же возник вопрос - почему тесты самописные, на голом Python, а не на каком-нибудь готовом решении. Я решил изучить, что же есть сейчас для TDD-администрирования. Оказалось, что толком ничего и нет, а то, что есть - для Ansible не особо нужно.

Для начала, что …

more ...

Тестирование Ansible Playbook

Давно хотел сделать авто-тестирование целостности развертывания, производимого с помощью Ansible. Чтобы, значит, запушил я новую версию плейбука в репозитория, и CI проверила работоспособность системы. Причем не просто корректность синтаксиса, а работоспособность проводимого деплоя.

Вот наконец до этого дошли руки.

Точнее, руки до этого дошли еще в середине 2013 года, но тогда я собрал все это с помощью стройной системы костылей, взяв за основу заранее минимально сконфигуренные qemu-образы на lvm-снапшотах.

Теперь …

more ...

Как я управляю серверами

Решил вот описать принципы управления серверами, к которым пришел за эти 3 года.

Итак:

принцип №1

Все конфиги лежат в VCS, я сейчас использую Git. Я думаю, в комментариях принцип не нуждается, необходимость централизованного хранения конфигов, а также хранения истории изменений с возможностью отката обсуждалась не раз.

принцип №2

Все ПО ставится только из пакетов, никаких ./configure && make && make install. Если пакета нужной версии нет в репозиториях дистрибутива - ищем готовый …

more ...