Ресурс locale
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл locale.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс locale для установки системного языка на системах Debian и Windows. Поддержка Windows была добавлена в Chef Infra Client 16.0
Новое в Chef Infra Client 14.5.
Синтаксис
Полный синтаксис всех доступных свойств ресурса locale:
locale 'name' do
lang String
lc_env Hash # default value: {}
action Symbol # defaults to :update if not specified
endгде:
-
locale— ресурс. -
name— имя блока ресурса. -
action— определяет действия Chef Infra Client для приведения узла к нужному состоянию. -
langиlc_env— доступные свойства этого ресурса.
Действия
Ресурс locale имеет следующие действия:
:nothing- Этот блок ресурса не выполняет действий, если не уведомлен другим ресурсом. После уведомления, этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце работы Chef Infra Client.
:update- Обновление системного языка. (по умолчанию)
Свойства
Ресурс locale имеет следующие свойства:
-
lang - Тип в Ruby: Строка
Устанавливает язык по умолчанию.
-
lc_env - Тип в Ruby: Хэш | Значение по умолчанию:
{}Хэш переменных среды LC_*, в формате
({ 'LC_ENV_VARIABLE' => 'VALUE' }).
Общие функциональные возможности ресурсов
Ресурсы Chef включают общие свойства, уведомления и защитные механизмы.
Общие свойства
Следующие свойства общие для всех ресурсов:
compile_time-
Тип в Ruby: true, false | Значение по умолчанию:
falseУправление фазой выполнения ресурса на узле. Установите в значение true, чтобы выполнить ресурс при построении коллекции ресурсов (
compile phase). Установите в значение false, чтобы выполнить ресурс при конфигурировании узла Chef Infra Client (converge phase). ignore_failure-
Тип в Ruby: true, false, :quiet | Значение по умолчанию:
falseПродолжать выполнение рецепта, если ресурс завершился сбоем по любой причине.
:quietне будет отображать полную трассировку стека, и рецепт будет продолжать выполняться в случае сбоя ресурса. retries-
Тип в Ruby: Целое число | Значение по умолчанию:
0Количество попыток перехвата исключений и повторного выполнения ресурса.
retry_delay-
Тип в Ruby: Целое число | Значение по умолчанию:
2Задержка в секундах между попытками повтора.
sensitive-
Тип в Ruby: true, false | Значение по умолчанию:
falseОбеспечить, чтобы конфиденциальные данные ресурсов не регистрировались Chef Infra Client.
Уведомления
-
notifies -
Тип в Ruby: Символ, 'Chef::Resource[String]'
Ресурс может уведомить другой ресурс о выполнении действия при изменении его состояния. Укажите
'resource[name]',:actionресурс должен выполнить и:timerдля этого действия. Один ресурс может уведомить несколько ресурсов; используйтеnotifiesдля каждого уведомляемого ресурса.Если указанный ресурс не существует, возникает ошибка. В отличие от этого,
subscribesне приведет к ошибке, если исходный ресурс не найден.
Таймер указывает момент во время выполнения Chef Infra Client, когда выполняется уведомление. Доступны следующие таймеры:
:before-
Указывает, что действие уведомленного ресурса должно выполняться перед обработкой блока ресурса, в котором находится уведомление.
:delayed-
По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце работы Chef Infra Client.
-
:immediate,:immediately -
Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.
Синтаксис для notifies:
notifies :action, 'resource[name]', :timer
-
subscribes -
Тип в Ruby: Символ, 'Chef::Resource[String]'
Ресурс может прослушивать другой ресурс и выполнять действие, если состояние прослушиваемого ресурса изменится. Укажите '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 Infra Client. На основе результатов этой оценки защитное свойство сообщает Chef Infra Client, следует ли продолжить выполнение ресурса. Свойство защитного механизма принимает либо строковое значение, либо значение блока Ruby:
- Строка выполняется как команда оболочки. Если команда возвращает
0, защитный механизм применяется. Если команда возвращает любое другое значение, то защитное свойство не применяется. Строковые защитные механизмы в powershell_script выполняют команды Windows PowerShell и могут возвращатьtrueпомимо0. - Блок выполняется как код Ruby, который должен вернуть либо
true, либоfalse. Если блок возвращаетtrue, защитное свойство применяется. Если блок возвращаетfalse, защитное свойство не применяется.
Свойство защитного механизма полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние по мере его выполнения, и, если желаемое состояние присутствует, не выполнять никаких действий Chef Infra Client.
СвойстваСледующие свойства могут использоваться для определения защитного механизма, оцениваемого во время фазы выполнения работы Chef Infra Client:
not_if-
Предотвращение выполнения ресурса, когда условие возвращает
true. only_if-
Разрешение выполнения ресурса только в том случае, если условие возвращает
true.
Примеры
Следующие примеры демонстрируют различные подходы к использованию ресурса locale в рецептах:
Установите lang в ‘en_US.UTF-8’
locale 'set system locale' do
lang 'en_US.UTF-8'
end
© 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/locale/