Но для тех, кто пытается начать с Puppet, эта документация немного длинна для чтения, похожа на книгу.
Я искал несколько блогов, но не нашел никакого контента ( короткого, но достаточно, основ, но пригодного для использования ), который я искал. Вот что я создал, чтобы заполнить этот пробел …
____________________________________________________
Марионетка
Руководство для начинающих (часть 1)
Что это такое? Когда это требуется?
(для всех новых парней, которые пришли сюда, просто просматривая Интернет) Puppet — это среда автоматизированного управления конфигурацией OpenSource (
что означает инструмент, который знает, как настроить все машины в детерминированное состояние, как только вы предоставите ему необходимый набор манифестов, вытягивая правильный струны ).
Он имеет корпоративный уровень, который продается организацией под названием
PuppetLabs (
http://puppetlabs.com/ ).
Это полезно # 1, когда у вас чертовски много машин, которые необходимо настроить в подобной форме.
Это полезно # 2
когда у вас есть инфраструктура, которая требует динамического увеличения и уменьшения компьютеров с заранее определенной (или, по крайней мере, рассчитанной метаданными) конфигурацией.
Это полезно # 3 , чтобы иметь контроль над всеми сконфигурированными машинами, поэтому централизованный (мастер-сервер или репо на основе) изменение получает распространяются на все автоматически.
И больше сценариев подходит по мере необходимости.
_____________________________________
Hello World с Puppet
Установите
Ruby ,
Rubygems на свой компьютер, где вы собираетесь его протестировать.
$ gem install puppet --no-ri --no-rdoc
Загрузите установщики
@Windows
@MacOSX ::
& ::
Docs для установки.
Проверка правильности установки и правильного функционирования …
Теперь ‘
puppet —version ‘ предоставит вам версию установки.
Выполнение ‘
facter ‘ даст вам список основной информации, относящейся к системной среде.
Имейте быстрый запуск кукольного экземпляра. Это создаст каталог ‘/ tmp / pup’, если он не существует. Он создает файл ‘/ tmp / pup / et’ с содержимым ‘look at me’.
{Если вы используете платформу без местоположения ‘/ tmp’. Как и для Windows, измените ‘/ tmp’ на ‘C: /’ или эквивалентный}
$ puppet apply -e "file{'/tmp/pup': ensure => 'directory'} file{ '/tmp/pup/et': ensure => 'present', content => 'look at me', require => File['/tmp/pup']} "
_____________________________________
Глупая структура использования.
Создайте огромный манифест для вашего узла со всеми ресурсами и данными, упомянутыми в нем. Затем непосредственно примените этот файл манифеста вместо
‘-e «abc {….. xyz}»‘ .
Если приведенный выше пример является вашей огромной заповедью конфигурации для узла, скопируйте все это в файл с именем «
mynode.pp ».
Затем примените его так же, как
$ puppet apply mynode.pp
_____________________________________
Как он развивается
Теперь, так же как любое приложение с подключаемыми компонентами библиотеки должно быть загружено и совместно использоваться при необходимости, в Puppet также есть концепция модулей. Эти модули могут иметь манифесты, файлы для обслуживания и многое другое.
Модули могут быть созданы в любом дизайне. Обычно это работает, имея разные модули для каждого компонента системы. Чтобы развить различные состояния логической конфигурации для любого данного компонента системы (а также поддерживать его в чистоте), можно выполнить дальнейшую перефакторинг в манифесте модулей, разделив его на разные области.
Вот
пример модуля для «apache httpd» . Для очень простой библиотеки вы можете захотеть структурировать свой модуль следующим образом
- база каталогов для вашего модуля: < MODULE_PATH> httpd /
- каталог в модуле для обслуживания статических файлов: < MODULE_PATH> / httpd / files
- статический файл конфигурации для httpd:
<MODULE_PATH>/httpd/files/myhttpd.conf AccessFileName .acl
- каталог для хранения ваших манифестов в модуле:
<MODULE_PATH>/httpd/manifests/
- Манифест полного решения:
<MODULE_PATH>/httpd/manifests/init.pp class httpd{ include httpd::install include httpd::config include httpd::service }
- манифест, просто устанавливающий httpd:
<MODULE_PATH>/httpd/manifests/install.pp class httpd::install { package {'httpd': ensure => 'installed'} }
- манифест, просто настраивающий httpd:
<MODULE_PATH>/httpd/manifests/config.pp class httpd::config{ file {'/etc/httpd/conf.d/httpd.conf': ensure => 'present', source => 'puppet:///modules/httpd/myhttpd.conf' } }
- манифест, просто обрабатывающий службу httpd:
<MODULE_PATH>/httpd/manifests/service.pp class httpd::service{ service{'httpd': ensure => 'running' } }
Теперь, используя его
$ puppet apply --modulepath=<MODULE_PATH> -e "include httpd"
установит, настроит и запустит службу httpd.
$ puppet apply --modulepath=<MODULE_PATH> -e "include httpd::install
«
просто установить службу httpd.
Далее … Часть 2 …