Puppet.Общая картина

Применяя Puppet для управления конфигурациями можно добиться следующего:

• автоматизировать процесс установки сервера

• глобального применения изменений на серверах

• поддержания целостного состояния серверов

Puppet может быть использован для автоматизации процесса установки программного обеспечения и конфигурирования при разворачивании серверов.

Такой инструмент, в частности, полезен, когда приходится устанавливать много серверов с похожей конфигурацией (например, файлы sudo, SSH-службы, веб-серверы и прочее).

Puppet также может быть полезен в ситуациях,когда нужно какой-либо скрипт или программу распространить на группу серверов. После этапа начального распространения, изменения в дальнейшем могут быть взяты с мастер-узла Puppet и применены к группам серверов с минимальными усилиями.

Частью работы системного администратора является проверка состояния сервера, в нужной ли он форме – как пример, SSH-сервис должен всегда спрашивать про публичные ключи, а парольная аутентификация должна быть отключена. Системному администратору придется персонализировать конфигурационные файлы на всех серверах и , при этом для соответствующих сервисов (например, SSH, NTP, named …) должна быть обеспечена возможность их непрерывной работы, а также рестарта, в случае,если у них меняется конфигурация.

Puppet написан на Ruby и лицензируется под лицензией Apache (начиная с версии 2.7.6, до этого была лицензия GPL). Утилита является форком от cfEngine, еще одного мощного инструмента по управлению конфигурацией. Разобраться с Puppet и начать использовать его достаточно просто вследствие его декларативного языка. Вместо чтения объемных руководств посвященных Puppet, эта статья предлагает вам пройтись по тем простым примерам,как установить серверную и клиентскую части Puppet.

После этого мы разберем типовые сценарии, чтобы понять, как на самом деле работает программа.

 

Общая картина

Серверы FreeBSD, участвующие в клиент-серверной модели Puppet должны быть настроены и выглядеть следующим образом:

• Puppet правильно установлен и сконфигурирован на “мастере” и “агенте”, в основном речь идет об их взаимодействии по каналу, подписанному SSL-сертификатом

• система портов настроена корректно – она потребуется для разворачивания конфигураций 

sudo и SSH-сервиса для использования в агенте Puppet, после этого будет возможным 

автоматическая настройка и конфигурация веб-сервера Apache.

Чтобы выполнить озвученные задачи, мы разобъем установку на логические части:

 

 

Часть I – установка мастер-узла Puppet и агента

1. установим Puppet и другие утилиты

2. выполним работу по редактирированию

конфигурационных файлов:

• /usr/local/etc/puppet/puppet.conf

• /usr/local/etc/puppet/fileserver.conf

• /usr/local/etc/puppet/manifests/site.pp

• /usr/local/etc/puppet/manifests/classes/*.pp

• /usr/local/etc/puppet/auth.conf

• /etc/rc.conf

3. подпишем сертификатом мастер-узел Puppet и агент

Часть II – различные сценарии развертывания

1. задействуем Puppet для конфигурации sudo на агенте

2. установим и сконфигурируем SSH-службу

3. установим и сконфигурируем веб-сервер Apache 2.2

Следующие серверы будут выполнять роли:

• puppet-master.example.com – этот сервер будет мастер-узлом/мастер-сервером Puppet. Он ответственен за распространение конфигураций на узлы-агенты.

• puppet-agent.example.com – собственно, сам агент. Он получает инструкции от мастер-узла и действует в соответствии с ними. В данном случае, разворачивает конфигурации для sudo, SSH-службы и веб-сервера.

Вы уже заметили, что для работы сервера требуется FQDN-имя. Мастер и агент будут называться, соответственно, как puppet-master.example.com” и “puppet-agent.example.com”.

Внимание: конфигурационные файлы, показанные в этой статье, являются необходимым минимумом

чтобы заработала связка мастер-агент, а также контролируемые сервисы. Примеры могут быть не предназначены для промышленного применения.

Используйте их на свой страх и риск!

Как работает Puppet 

Puppet полагается на связь “мастер-агент” для контроля клиентских машин со стороны сервера.

На мастер-узле готовится какой-либо сценарий и отсылается агенту, который, в свою очередь, выполняет присланный сценарий.

Эти действия называются “ресурсы” (“resources”).

Они могут быть сгруппированы в “классы” (“classes”) для формирования более общих “функций” (“functions”).

“Ресурсы” затем выполняются на узлах, то есть агентах.

Как себя ведет Puppet:

• Использует SSL для обеспечения безопасной связи между мастером и агентом.

• Мастер-узел хранит разрешения на ресурсы в файле /usr/local/etc/puppet/auth.conf

• Мастер-узел хранит собственную конфигурацию в файле /usr/local/etc/puppet/puppet.conf

• На агентах не требуется присутствие файла /usr/local/etc/puppet/puppet.conf

• Сообщения об ошибках Puppet хранятся в /var/log/messages

Древовидная структура ниже показывает какие именно файлы и директории необходимы для

мастера-узла Puppet:

 

/

usr/local/etc/puppet

+— auth.conf

+— files

¦ +— httpd.conf

¦ +— sshd_config

¦ L— sudoers

+— fileserver.conf

+— manifests

¦ +— classes

¦ ¦ +— resource_group.pp

¦ ¦ L— something.pp

¦ L— site.pp

L— puppet.conf

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *