Я новичок в марионетке. Я прочитал кучу, мне удалось написать простой (и, вероятно, неуклюжий) манифест для настройки хоста вместе с таким же простым скриптом фабрики для работы с предварительной настройкой марионетки. Отлично, пора быть серьезнее. Я настроил марионеточного мастера под apache2. (Я использую ubuntu 14.04 с пакетами версии 3.8 благодаря deb из марионеточных лабораторий ...)
Пока все хорошо, но сейчас я застрял на паре пунктов, несмотря на долгие поиски и игры. В конечном счете, все сводится к тому, как настроить регрессионные тесты, чтобы я всегда мог воссоздать свою инфра-систему.
Мастер марионеток работает под apache2. Я полагаю, это нормально, поскольку на него не жалуются, и я работаю на 8140. Но мне бы хотелось получить лучший способ подтвердить это, чем отсутствие ошибок. Есть ли способ узнать о здоровье мастера?
Я хотел бы иметь возможность проводить автоматическое тестирование. Для агентов (отдельных хостов в моем (крошечном) флоте) я могу вызвать бродячих виртуальных машин, сказать им, что их зовут X, и затем применить марионетку. Итак, я могу увидеть, подходит ли хост так, как я ожидал от хоста X. Затем я могу запустить сценарий на виртуальной машине, который проверяет все, что, по моему мнению, хост действительно должен делать. Но я бы хотел автоматизировать это, хотя, как ни странно, я не нашел общих рецептов для этого. Бьюсь об заклад, мне не нужно это изобретать. Есть указатели?
Точно так же я бы хотел провести автоматическое тестирование и для мастера. Итак, это (1) и (2) вместе, так как я не уверен, как проверить мастер.
Спасибо за любые указатели.
puppetmaster
сам по себе не предоставляет много информации. Если вы добавите следующее в /etc/puppet/auth.conf
:
path ~ ^/status/no_key$
auth off
allow *
Вы должны иметь возможность запросить puppetmaster
статус без предоставления сертификатов (было бы неплохо занести в белый список определенные IP-адреса, используя allow_ip
)
curl -ksS -H "Accept: pson" https://puppet.example.com:8140/production/status/no_key
Что должно ответить HTTP 200:
{"is_alive":true,"version":"3.8.1"}
Помимо этого puppetmaster
хранит много информации в YAML, обычно в /var/lib/puppet/reports/
. Но эти отчеты не очень удобны для людей. Итак, вы, вероятно, ищете что-то вроде марионетка-приборная панель, который раньше входил в официальный дистрибутив Puppet, а теперь разрабатывается как проект с открытым исходным кодом.
Модули Puppet обычно тестируются с использованием рспек-марионетка, который является расширением общей среды тестирования Ruby. Вы, наверное, ищете Стакан, который сочетает в себе коробки Vagrant и тестирование rspec-puppet. Посмотри на этот учебник.
Конечно, вы, вероятно, не хотите отлаживать свой код в производственной среде.
Есть несколько вариантов решения этой проблемы. Один из них использует рабочие процессы с участием r10k или подход ролей / профилей. Или вы можете просто развернуть набор ящиков Vagrant, протестировать локально, а затем развернуть. Определенно хорошая идея управлять версиями используемых модулей марионеток, например. с помощью кукольный библиотекарь или r10k. Puppet развивается, поэтому список предпочтительных инструментов может со временем меняться.