Ресурс chef_environment
Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл chef_environment.rb и отправьте запрос на вытягивание в репозиторий Chef.
Окружение — это способ сопоставить реальный рабочий процесс организации с тем, что можно настроить и управлять с помощью Chef Infra. Это сопоставление достигается путем задания атрибутов и фиксации кулинарных книг на уровне окружения. С помощью окружений вы можете изменять конфигурации кулинарных книг в зависимости от назначения системы. Например, назначив разные окружения этапа тестирования и производства, вы можете определить правильный URL сервера базы данных для каждого окружения. Окружения также позволяют организациям уверенно переносить новые релизы кулинарных книг из окружения этапа тестирования в окружение производства, проходя релизы через тестовые окружения, прежде чем перейти в окружение производства.
Используйте ресурс 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 -
name— имя блока ресурса; когда свойствоnameне указано в рецепте,nameтакже является именем окружения -
attribute— ноль или более доступных свойств для данного ресурса -
actionопределяет действия клиента Chef Infra Client для перевода узла в нужное состояние
Действия
Ресурс chef_environment имеет следующие действия:
:create- По умолчанию. Используется для создания окружения.
:delete- Используется для удаления окружения.
:nothing- Этот блок ресурса не действует, пока не получит уведомление от другого ресурса о выполнении действия. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения клиента Chef Infra.
Свойства
Ресурс chef_environment имеет следующие свойства:
chef_serverURL сервера Chef Infra.
completeИспользуется для указания, определяет ли данный ресурс окружение полностью. Когда
true, любое свойство, не указанное этим ресурсом, будет сброшено до значений по умолчанию.
cookbook_versionsВерсии кулинарных книг, используемые в окружении. Значение по умолчанию:
{}.
default_attributes-
Атрибут
defaultавтоматически сбрасывается в начале каждого выполнения клиента Chef Infra и имеет наименьший приоритет атрибутов. Используйте атрибутыdefaultв кулинарных книгах как можно чаще.Значение по умолчанию:
{}.
descriptionОписание окружения. Это значение заполняет поле описания для окружения на сервере Chef Infra.
ignore_failure-
Тип в Ruby: true, false | Значение по умолчанию:
falseПродолжить выполнение рецепта, если ресурс завершится ошибкой по любой причине.
nameИмя окружения.
notifies-
Тип в Ruby: Символ, Chef::Resource\[Строка\]
Ресурс может уведомлять другой ресурс о выполнении действия при изменении его состояния. Укажите
'resource[name]',:actionдействие, которое должен выполнить ресурс, и затем:timerдля этого действия. Ресурс может уведомлять более одного ресурса; используйте инструкциюnotifiesдля каждого уведомляемого ресурса.Если указанный ресурс не существует, возникает ошибка. В отличие от этого,
subscribesне завершится ошибкой, если исходный ресурс не найден.Таймер указывает момент во время выполнения клиента Chef Infra, в который выполняется уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие с уведомленным ресурсом должно выполняться до обработки блока ресурса, в котором расположено уведомление.
:delayedПо умолчанию. Указывает, что уведомление должно помещаться в очередь и выполняться в конце выполнения клиента Chef Infra.
-
:immediate,:immediately Указывает, что уведомление должно выполняться немедленно для каждого уведомленного ресурса.
Синтаксис
notifies:notifies :action, 'resource[name]', :timer
override_attributes-
Атрибут
overrideавтоматически сбрасывается в начале каждого выполнения клиента Chef Infra и имеет более высокий приоритет атрибутов, чем атрибуты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":{} }
retries-
Тип в Ruby: Целое число | Значение по умолчанию:
0Количество попыток перехватить исключения и повторить ресурс.
retry_delay-
Тип в Ruby: Целое число | Значение по умолчанию:
2Задержка повтора (в секундах).
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, в который выполняется уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие с уведомленным ресурсом должно выполняться до обработки блока ресурса, в котором расположено уведомление.
:delayedПо умолчанию. Указывает, что уведомление должно помещаться в очередь и выполняться в конце выполнения клиента Chef Infra.
-
: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/