1. Обзор Puppet — это инструмент автоматизации конфигурации и развертывания программного обеспечения с открытым исходным кодом, который прост в использовании и мощен, привлекает всё больше внимания, и многие крупные IT-компании теперь используют Puppet для управления и развертывания программного обеспечения в кластерах, например, Google использует Puppet для управления более чем 6 000 настольных компьютеров Mac (данные 2007 года). В этой статье главным образом рассматривается метод установки, архитектура проектирования и метод использования марионетки.
2. Архитектура проектирования Puppet основан на архитектуре C/S. Серверная сторона хранит весь конфигурационный код клиентского сервера, который называется manifest in puppet. После загрузки манифеста клиентом сервер можно настроить в соответствии с манифестом, например, управление пакетами, пользовательскими и файлами.
Как показано на рисунке выше, рабочий процесс puppet выглядит следующим образом: (1) Клиентский puppetd называет facter, а facter обнаруживает некоторые переменные хоста, такие как имя хоста, размер памяти, IP-адрес и т.д. pupppetd отправляет эту информацию на сервер через SSL-соединение; (2) Серверный кукловод обнаруживает имя хоста клиента, затем находит соответствующую конфигурацию узла в манифесте и анализирует эту часть содержимого. Парсинг делится на несколько этапов: проверка синтаксиса и отчётность об ошибках, если синтаксис неверен. Если синтаксис верен, продолжайте разбор, и результат парсинга генерирует промежуточный «псевдокод», а затем отправляет псевдокод клиенту; (3) Клиент получает «псевдокод» и выполняет его, а результат выполнения отправляет на сервер; (4) Серверная сторона записывает результат выполнения клиента в журнал. В процессе работы с PUPPET стоит отметить два момента: во-первых, для обеспечения безопасности клиент и мастер основаны на SSL и сертификатах, и только клиент, аутентифицированный мастер-сертификатом, может общаться с мастером; Во-вторых, puppet поддерживает систему в определённом ожидаемом состоянии и поддерживает её постоянно, например, обнаживая файл и гарантируя, что он всегда существует, обеспечивает, что SSH-сервис всегда включён, если файл удалён или SSSH-сервис закрыт, а при следующем запуске марионетки (30 минут по умолчанию) файл будет воссоздан или запустит SSSH-сервис.
3. Установка программного обеспечения Не рекомендуется использовать команду apt-get для установки, так как марионетка, загруженная этой командой, содержит баг. Её можно установить напрямую из исходного кода, а программное обеспечение, которое нужно установить — ruby, facter и puppet.
3.1 Процедура установки Отредактировать /etc/host для изменения имени хоста, так как марионетка основана на сертификате и содержит имя хоста в сертификате; Установите Ruby, Facter и Puppet на Master и Slave, а также используйте Ruby Install.rb для установки Facter и Puppet.
3.2 Структура каталога после установки (1) Каталог установки Каталог установки хранится в /etc/puppet и проявляется в файлах манифеста этого хранилища каталогов. Другие исполняемые файлы под /user/sbin в основном включают: puppet: используется для выполнения независимых файлов mainfest, написанных пользователем, таких как: Puppet -l /tmp/manifest.log manifest.pp puppetd: клиентская программа, которая работает на управляемом хосте, например: puppet –server servername –waitforcert 60 puppetmasterd: серверная программа, выполняемая на управляющей машине, например: Puppetmasterd –debug Программа сертификации Puppeta Puppeta в основном используется для аутентификации ведомых сертификатов, таких как: Проверьте подлинифицированный раб: puppetca –list Сертифицируйте этих рабов: puppetca -s –a Puppetrun используется для подключения к клиенту, заставляя локальный конфигурационный файл запускаться, например: Puppetrun -p 10 –Host host1 –Host host2 -t Remotefile -t Webserver (2) Конфигурационные файлы puppet.conf Основной конфигурационный файл Puppet — /etc/puppet/puppet.conf для корневых пользователей и ~user/.puppet/puppet.conf для обычных пользователей Для конкретных параметров конфигурации см.:
http://docs.puppetlabs.com/references/stable/configuration.html#configuration-files fileserver.conf Конфигурационный файл кукольного файлового сервера. Используйте путь к конфигурационному файлу пути и разрешите/запретите для настройки разрешений доступа, см. http://docs.puppetlabs.com/guides/file_serving.html
3.3 Убедитесь, что установка прошла успешно Выберите подчинённого для проверки с мастером, предполагая, что хост слейва — слейв00, а хост мастера — мастерхост, введите в slave00: puppetd –test –server servername Затем посмотрите на слейва, который можно аутентифицировать на masterhost: Пуппетка –список Если это не против, вы можете увидеть, как slave00 подписывает сертификат раба: Пуппетка -с -а Таким образом, slave00 прошёл валидацию сертификата и мог дальше взаимодействовать с мастером. Запишите файл site.pp в каталог /etc/puppet/manifests мастерхоста, который гласит: узел по умолчанию { Файл { "/tmp/test": content=>«привет», режим => 0644;
}
} Одновременно введите puppetd –test –server server name в slave00, проверьте папку /tmp в slave00 и сгенерируйте новый файл-тест, содержимое которого — hello, а разрешение файла — -rw-r—r-. Таким образом, установка куклы оказывается успешной
|