Учебники

Кукольный — Ресурс

Ресурсы являются одним из ключевых фундаментальных элементов 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’, 
}

Атрибуты и ценности

Основная часть любого ресурса состоит из набора пар атрибут-значение. Здесь можно указать значения для свойства данного ресурса. Каждый тип ресурса имеет свой собственный набор атрибутов, которые можно настроить с помощью пар ключ-значение.

Опишите подкоманду, которая может использоваться для получения более подробной информации о конкретном атрибуте ресурсов. В следующем примере у нас есть детали о пользовательском ресурсе вместе со всеми его настраиваемыми атрибутами.