Ресурсы являются одним из ключевых фундаментальных элементов Puppet, используемых для проектирования и создания любой конкретной инфраструктуры или машины. Они в основном используются для моделирования и поддержки конфигурации системы. Puppet имеет несколько типов ресурсов, которые можно использовать для определения архитектуры системы, или пользователь может использовать для создания и определения нового ресурса.
Блок кода Puppet в файле манифеста или любом другом файле называется объявлением ресурса. Блок кода написан на языке декларативного языка моделирования (DML). Ниже приведен пример того, как это выглядит.
user { 'vipin': ensure => present, uid => '552', shell => '/bin/bash', home => '/home/vipin', }
В Puppet объявление ресурса для любого конкретного типа ресурса выполняется в блоке кода. В следующем примере пользователь состоит в основном из четырех предварительно определенных параметров.
-
Тип ресурса — в приведенном фрагменте кода это пользователь.
-
Параметр ресурса — в приведенном фрагменте кода это Vipin.
-
Атрибуты — в приведенном фрагменте кода это обеспечивает, uid, shell, home.
-
Значения — это значения, которые соответствуют каждому свойству.
Тип ресурса — в приведенном фрагменте кода это пользователь.
Параметр ресурса — в приведенном фрагменте кода это Vipin.
Атрибуты — в приведенном фрагменте кода это обеспечивает, uid, shell, home.
Значения — это значения, которые соответствуют каждому свойству.
Каждый тип ресурса имеет свой собственный способ определения определений и параметров, и пользователь имеет право выбирать, как он хочет, чтобы его ресурс выглядел.
Тип ресурса
В Puppet доступны различные типы ресурсов, которые имеют свой собственный способ работы. Эти типы ресурсов можно просмотреть с помощью команды «description» и опции «-list».
[root@puppetmaster ~]# puppet describe --list These are the types known to puppet: augeas - Apply a change or an array of changes to the ... computer - Computer object management using DirectorySer ... cron - Installs and manages cron jobs exec - Executes external commands file - Manages files, including their content, owner ... filebucket - A repository for storing and retrieving file ... group - Manage groups host - Installs and manages host entries interface - This represents a router or switch interface k5login - Manage the ‘.k5login’ file for a user macauthorization - Manage the Mac OS X authorization database mailalias - .. no documentation .. maillist - Manage email lists mcx - MCX object management using DirectoryService ... mount - Manages mounted filesystems, including puttin ... nagios_command - The Nagios type command nagios_contact - The Nagios type contact nagios_contactgroup - The Nagios type contactgroup nagios_host - The Nagios type host nagios_hostdependency - The Nagios type hostdependency nagios_hostescalation - The Nagios type hostescalation nagios_hostextinfo - The Nagios type hostextinfo nagios_hostgroup - The Nagios type hostgroup nagios_service - The Nagios type service nagios_servicedependency - The Nagios type servicedependency nagios_serviceescalation - The Nagios type serviceescalation nagios_serviceextinfo - The Nagios type serviceextinfo nagios_servicegroup - The Nagios type servicegroup nagios_timeperiod - The Nagios type timeperiod notify - .. no documentation .. package - Manage packages resources - This is a metatype that can manage other reso ... router - .. no documentation .. schedule - Define schedules for Puppet scheduled_task - Installs and manages Windows Scheduled Tasks selboolean - Manages SELinux booleans on systems with SELi ... service - Manage running services ssh_authorized_key - Manages SSH authorized keys sshkey - Installs and manages ssh host keys stage - A resource type for creating new run stages tidy - Remove unwanted files based on specific crite ... user - Manage users vlan - .. no documentation .. whit - Whits are internal artifacts of Puppet's curr ... yumrepo - The client-side description of a yum reposito ... zfs - Manage zfs zone - Manages Solaris zones zpool - Manage zpools
Название ресурса
В приведенном выше фрагменте кода у нас есть заголовок ресурса как vipin, который уникален для каждого ресурса, используемого в одном и том же файле кода. Это уникальный заголовок для этого типа ресурса пользователя. У нас не может быть ресурса с тем же именем, потому что это вызовет конфликты.
Команда Resource может использоваться для просмотра списка всех ресурсов, используя тип user.
[root@puppetmaster ~]# puppet resource user user { 'abrt': ensure => 'present', gid => '173', home => '/etc/abrt', password => '!!', password_max_age => '-1', password_min_age => '-1', shell => '/sbin/nologin', uid => '173', } user { 'admin': ensure => 'present', comment => 'admin', gid => '444', groups => ['sys', 'admin'], home => '/var/admin', password => '*', password_max_age => '99999', password_min_age => '0', shell => '/sbin/nologin', uid => '55', } user { 'tomcat': ensure => 'present', comment => 'tomcat', gid => '100', home => '/var/www', password => '!!', password_max_age => '-1', password_min_age => '-1', shell => '/sbin/nologin', uid => '100', }
Перечисление ресурсов конкретного пользователя
[root@puppetmaster ~]# puppet resource user tomcat user { 'apache': ensure => 'present', comment => 'tomcat', gid => '100', home => '/var/www', password => '!!', password_max_age => '-1', password_min_age => '-1', shell => '/sbin/nologin', uid => '100’, }
Атрибуты и ценности
Основная часть любого ресурса состоит из набора пар атрибут-значение. Здесь можно указать значения для свойства данного ресурса. Каждый тип ресурса имеет свой собственный набор атрибутов, которые можно настроить с помощью пар ключ-значение.
Опишите подкоманду, которая может использоваться для получения более подробной информации о конкретном атрибуте ресурсов. В следующем примере у нас есть детали о пользовательском ресурсе вместе со всеми его настраиваемыми атрибутами.