О ресурсах
Ресурс — это утверждение политики конфигурации, которое:
- Описывает желаемое состояние элемента конфигурации
- Определяет шаги, необходимые для приведения элемента в желаемое состояние
- Указывает тип ресурса — например,
package,templateилиservice - Перечисляет дополнительные детали (также известные как свойства ресурса), при необходимости
- Группируются в рецепты, которые описывают рабочие конфигурации
Синтаксис ресурсов
Ресурс представляет собой Ruby-блок с четырьмя компонентами: типом, именем, одним (или несколькими) свойствами (со значениями) и одним (или несколькими) действиями. Синтаксис ресурса выглядит так:
type 'name' do
attribute 'value'
action :type_of_action
end
Каждый ресурс имеет свой набор действий и свойств. Большинство свойств имеют значения по умолчанию. Некоторые свойства доступны для всех ресурсов, например, те, которые используются для отправки уведомлений другим ресурсам и стражи, которые помогают гарантировать, что некоторые ресурсы являются идемпотентными.
Например, ресурс, используемый для установки пакета tar.gz версии 1.16.1, может выглядеть примерно так:
package 'tar' do
version '1.16.1'
action :install
end
Все действия имеют значение по умолчанию. Необходимо указывать только нестандартное поведение действий и свойств. Например, действие по умолчанию для ресурса package — это :install, а имя пакета по умолчанию — name ресурса. Поэтому можно записать блок ресурса, который устанавливает самый последний пакет tar.gz так:
package 'tar'
и блок ресурса, который устанавливает пакет tar.gz версии 1.6.1 так:
package 'tar' do
version '1.16.1'
end
В обоих случаях Chef Infra Client будет использовать действие по умолчанию (:install) для установки пакета tar.
Дополнительная информация
Для получения дополнительной информации о ресурсах см. следующие руководства:
| Тема | Описание |
|---|---|
| Общие свойства | Предоставляет подробный список общих свойств, доступных во всех ресурсах. |
| Справочник по ресурсам | Справочник, в котором перечислены как общие, так и индивидуальные параметры, доступные для каждого ресурса, включенного в Chef. |
| Пользовательские ресурсы | Показывает, как создавать собственные ресурсы Chef. |
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/resource/