В Puppet все программы, написанные на языке программирования Ruby и сохраненные с расширением .pp , называются манифестами . В общих чертах, все программы Puppet, созданные с целью создания или управления любым целевым хостом, называются манифестом. Все программы, написанные на Puppet, следуют стилю кодирования Puppet.
Суть Puppet — это способ объявления ресурсов и то, как эти ресурсы представляют их состояние. В любом манифесте пользователь может иметь коллекцию ресурсов различного типа, которые сгруппированы с использованием класса и определения.
В некоторых случаях манифест Puppet может даже иметь условное выражение для достижения желаемого состояния. Однако в конечном итоге все сводится к тому, чтобы убедиться, что все ресурсы определены и используются правильно, а определенный манифест при применении после преобразования в каталог способен выполнить задачу, для которой он был разработан.
Рабочий процесс файла манифеста
Кукольный манифест состоит из следующих компонентов —
-
Файлы (это обычные файлы, в которых Puppet не имеет ничего общего с ними, просто чтобы взять их и поместить в нужное место)
-
Ресурсы
-
Шаблоны (их можно использовать для создания файлов конфигурации на узле).
-
Узлы (все определения, относящиеся к клиентскому узлу, определены здесь)
-
Классы
Файлы (это обычные файлы, в которых Puppet не имеет ничего общего с ними, просто чтобы взять их и поместить в нужное место)
Ресурсы
Шаблоны (их можно использовать для создания файлов конфигурации на узле).
Узлы (все определения, относящиеся к клиентскому узлу, определены здесь)
Классы
Указывает на заметку
-
В Puppet все файлы манифеста используют Ruby в качестве языка кодирования и сохраняются с расширением .pp .
-
Оператор «import» во многих манифестах используется для загрузки файлов при запуске Puppet.
-
Для того чтобы импортировать все файлы, содержащиеся в каталоге, вы можете использовать оператор импорта другим способом, например, import «clients / *». Это позволит импортировать все файлы .pp внутри этого каталога.
В Puppet все файлы манифеста используют Ruby в качестве языка кодирования и сохраняются с расширением .pp .
Оператор «import» во многих манифестах используется для загрузки файлов при запуске Puppet.
Для того чтобы импортировать все файлы, содержащиеся в каталоге, вы можете использовать оператор импорта другим способом, например, import «clients / *». Это позволит импортировать все файлы .pp внутри этого каталога.
Письменные манифесты
Работа с переменными
При написании манифеста пользователь может определить новую переменную или использовать существующую переменную в любой точке манифеста. Puppet поддерживает различные типы переменных, но некоторые из них часто используются, такие как строки и массив строк. Помимо них, другие форматы также поддерживаются.
Пример строковой переменной
$package = "vim" package { $package: ensure => "installed" }
Использование циклов
Циклы используются, когда нужно пройти несколько итераций на одном и том же наборе кода, пока не будет выполнено определенное условие. Они также используются для выполнения повторяющихся задач с различным набором значений. Создание 10 заданий для 10 разных вещей. Можно создать одну задачу и использовать цикл для повторения задачи с разными пакетами, которые нужно установить.
Чаще всего массив используется для повторения теста с разными значениями.
$packages = ['vim', 'git', 'curl'] package { $packages: ensure => "installed" }
Использование условных выражений
Puppet поддерживает большую часть условной структуры, которую можно найти в традиционных языках программирования. Условие может использоваться для динамического определения, выполнять ли конкретную задачу или набор кода должен выполняться. Например if / else и case. Кроме того, такие условия, как execute, также поддерживают атрибуты, которые работают как условие, но принимают только вывод команды в качестве условия.