Ресурс chef_environment
Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл chef_environment.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Среда — это способ сопоставить реальный рабочий процесс организации с тем, что можно настроить и управлять с помощью Chef Infra. Это сопоставление достигается путем установки атрибутов и привязки кулинарных книг на уровне среды. С помощью сред вы можете изменять конфигурации кулинарных книг в зависимости от назначения системы. Например, назначив разные среды staging и production, вы можете определить правильный URL сервера базы данных для каждой среды. Среды также позволяют организациям уверенно переносить новые релизы кулинарных книг из среды staging в production, пропуская их через тестовые среды до перехода в production.
Используйте ресурс chef_environment для управления средами.
Синтаксис
Синтаксис использования ресурса chef_environment в рецепте следующий:
chef_environment 'name' do
attribute 'value' # see properties section below
...
action :action # see actions section below
end
где:
-
chef_environmentсообщает клиенту Chef Infra использовать поставщикChef::Provider::ChefEnvironmentво время выполнения Chef Infra Client -
name— это имя блока ресурса; когда свойствоnameне указано в составе рецепта,nameтакже является именем среды -
attribute— это ноль (или более) свойств, доступных для данного ресурса -
actionопределяет действия, которые выполнит клиент Chef Infra, чтобы привести узел в желаемое состояние
Действия
Ресурс chef_environment имеет следующие действия:
:create- По умолчанию. Используется для создания среды.
:delete- Используется для удаления среды.
:nothing- Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса о выполнении действия. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь на выполнение в конце выполнения Chef Infra Client.
Свойства
Ресурс chef_environment имеет следующие свойства:
-
chef_server -
URL сервера Chef Infra.
-
complete -
Используется для указания, полностью ли этот ресурс определяет среду. Если
true, любые свойства, не указанные в этом ресурсе, будут сброшены до значений свойств по умолчанию.
-
cookbook_versions -
Версии кулинарных книг, используемые в среде. Значение по умолчанию:
{}.
-
default_attributes -
Атрибут
defaultавтоматически сбрасывается в начале каждого выполнения Chef Infra Client и имеет самый низкий приоритет атрибутов. Используйте атрибутыdefaultв кулинарных книгах как можно чаще.Значение по умолчанию:
{}.
-
description -
Описание среды. Это значение заполняет поле описания среды на сервере Chef Infra.
-
ignore_failure - Тип Ruby: true, false | Значение по умолчанию:
falseПродолжить выполнение рецепта, если ресурс завершился неудачно по любой причине.
-
name -
Имя среды.
-
notifies - Тип Ruby: Символ, Chef::Resource\[Строка\]
Ресурс может уведомить другой ресурс о выполнении действия при изменении его состояния. Укажите
'resource[name]',:actionдействие этого ресурса, а затем:timerдля этого действия. Ресурс может уведомлять несколько ресурсов; используйте операторnotifiesдля каждого уведомляемого ресурса.Если указанный ресурс не существует, возникает ошибка. В отличие от
subscribes, который не завершится ошибкой, если исходный ресурс не найден.Таймер определяет момент во время выполнения Chef Infra Client, в который выполняется уведомление. Доступны следующие таймеры:
:before-
Указывает, что действие над уведомленным ресурсом должно быть выполнено до обработки блока ресурса, в котором находится уведомление.
:delayed-
По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately -
Указывает, что уведомление должно быть выполнено немедленно, для каждого уведомленного ресурса.
Синтаксис для
notifies:notifies :action, 'resource[name]', :timer
-
override_attributes -
Атрибут
overrideавтоматически сбрасывается в начале каждого выполнения Chef Infra Client и имеет более высокий приоритет атрибутов, чем атрибутыdefault,force_default, иnormal. Атрибутoverrideчаще всего указывается в рецепте, но может быть указан в файле атрибутов, для роли и/или для среды. Кулинарная книга должна быть написана так, чтобы использовать атрибутыoverrideтолько при необходимости.Значение по умолчанию:
{}.
-
raw_json -
Среда в формате JSON. Например:
{ "name":"backend", "description":"", "cookbook_versions":{}, "json_class":"Chef::Environment", "chef_type":"environment", "default_attributes":{}, "override_attributes":{} }
-
subscribes - Тип Ruby: Символ, Chef::Resource\[Строка\]
Ресурс может следить за другим ресурсом и выполнять действие, если состояние отслеживаемого ресурса изменится. Укажите
'resource[name]',:actionдействие, которое нужно выполнить, а затем:timerдля этого действия.Обратите внимание, что
subscribesне применяет указанное действие к ресурсу, за которым он следит — например:file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root' end service 'nginx' do subscribes :reload, 'file[/etc/nginx/ssl/example.crt]', :immediately endВ этом случае свойство
subscribesперезагружает службуnginxвсякий раз, когда файл сертификата, расположенный по адресу/etc/nginx/ssl/example.crt, обновляется.subscribesне вносит никаких изменений в сам файл сертификата, а лишь отслеживает изменения в файле и выполняет действие:reloadдля своего ресурса (в данном примереnginx) при обнаружении изменений.Если другой ресурс не существует, подписка не вызовет ошибку. В отличие от более строгих правил
notifies, которые вызовут ошибку, если другой ресурс не существует.Таймер определяет момент во время выполнения Chef Infra Client, в который выполняется уведомление. Доступны следующие таймеры:
:before-
Указывает, что действие над уведомленным ресурсом должно быть выполнено до обработки блока ресурса, в котором находится уведомление.
:delayed-
По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately -
Указывает, что уведомление должно быть выполнено немедленно, для каждого уведомленного ресурса.
Синтаксис для
subscribes:subscribes :action, 'resource[name]', :timer
Примеры
Примеры для этого ресурса отсутствуют.
© 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/resources/chef_environment/