Spec-Zone.ru › Chef 16

Все ресурсы для настольных систем

Ресурс chef_client_launchd

Используйте ресурс chef_client_launchd для настройки запуска Клиента Chef Infra по расписанию.

Синтаксис


Полный синтаксис всех свойств ресурса chef_client_launchd:

chef_client_launchd 'name' do
  interval      Integer # default value: 30
  action        Symbol # defaults to :enable if not specified
end

где:

  • chef_client_launchd — это ресурс.
  • name — имя блока ресурса.
  • action определяет шаги, которые Клиент Chef Infra предпримет для приведения узла в нужное состояние.
  • interval — свойство данного ресурса.

Действия


У ресурса есть следующие действия:

:disable
Препятствует запуску Клиента Chef Infra.
:enable
Разрешает запуск Клиента Chef Infra с указанным интервалом.
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После уведомления, этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце сессии Клиента Chef Infra.

Свойства


Ресурс chef_client_launchd имеет следующие свойства:

interval
Тип в Ruby: Целое число | Значение по умолчанию: 30

Время в минутах между запусками Клиента Chef Infra


Общие функции ресурсов


Ресурсы Chef включают общие свойства, уведомления и защитные механизмы ресурсов.

Общие свойства

Следующие свойства являются общими для всех ресурсов:

compile_time

Тип в Ruby: true, false | Значение по умолчанию: false

Управляет фазой выполнения ресурса на узле. Установите в значение true, чтобы запустить во время построения коллекции ресурсов (compile phase). Установите в значение false, чтобы запустить во время конфигурирования узла Клиентом Chef Infra (converge phase).

ignore_failure

Тип в Ruby: true, false, :quiet | Значение по умолчанию: false

Продолжать выполнение рецепта, если ресурс завершится неудачно по любой причине. :quiet не отобразит полный стек вызовов, и рецепт продолжит выполнение, если ресурс завершится неудачно.

retries

Тип в Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехватить исключения и повторить ресурс.

retry_delay

Тип в Ruby: Целое число | Значение по умолчанию: 2

Задержка повторной попытки (в секундах).

sensitive

Тип в Ruby: true, false | Значение по умолчанию: false

Обеспечить, чтобы конфиденциальные данные ресурса не регистрировались Клиентом Chef Infra.

Уведомления

notifies

Тип в Ruby: Символ, 'Chef::Resource[Строка]'

Ресурс может уведомить другой ресурс о необходимости выполнения действия при изменении его состояния. Укажите 'resource[name]', :action, которое должен выполнить этот ресурс, и :timer для этого действия. Ресурс может уведомить несколько ресурсов; используйте оператор notifies для каждого уведомляемого ресурса.

Если указанный ресурс не существует, возникает ошибка. В отличие от этого, subscribes не завершится с ошибкой, если исходный ресурс не найден.

Таймер указывает момент во время выполнения Клиента Chef Infra, когда выполняется уведомление. Доступны следующие таймеры:

:before

Указывает, что действие над уведомленным ресурсом должно быть выполнено до обработки блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть помещено в очередь и выполнено в конце выполнения Клиента Chef Infra.

:immediate, :immediately

Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.

Синтаксис для notifies:

notifies :action, 'resource[name]', :timer
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 Infra. На основании результатов этой оценки защитный механизм сообщает Клиенту Chef Infra, следует ли продолжать выполнение ресурса. Свойство защитного механизма принимает строковое значение или значение блока Ruby:

  • Строка выполняется как команда оболочки. Если команда возвращает 0, защитный механизм применяется. Если команда возвращает любое другое значение, свойство защитного механизма не применяется. Строковые защитные механизмы в powershell_script выполняют команды Windows PowerShell и могут возвращать true, помимо 0.
  • Блок выполняется как код Ruby, который должен возвращать либо true, либо false. Если блок возвращает true, защитный механизм применяется. Если блок возвращает false, защитный механизм не применяется.

Свойство защитного механизма полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние при его выполнении, а затем, если желаемое состояние присутствует, Клиенту Chef Infra ничего не делать.

Свойства

Следующие свойства могут использоваться для определения защитного механизма, оцениваемого во время фазы выполнения Клиента Chef Infra:

not_if

Препятствует выполнению ресурса, когда условие возвращает true.

only_if

Разрешает выполнение ресурса только в том случае, если условие возвращает true.

Примеры


Этот ресурс не имеет примеров.

Ресурс macos_admin_control

Используйте ресурс macos_admin_control, чтобы потребовать привилегии администратора для внесения изменений во всей системе.

Синтаксис


Полный синтаксис всех свойств ресурса macos_admin_control:

macos_admin_control 'name' do
  action      Symbol # defaults to :enable if not specified
end

где:

  • macos_admin_control — это ресурс.
  • name — имя блока ресурса.
  • action определяет шаги, которые Клиент Chef Infra предпримет для приведения узла в нужное состояние.

Действия


У ресурса есть следующие действия:

:disable
:enable
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После уведомления, этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце сессии Клиента Chef Infra.

Свойства


У этого ресурса нет свойств.


Общие функции ресурсов


Ресурсы Chef включают общие свойства, уведомления и защитные механизмы ресурсов.

Общие свойства

Следующие свойства являются общими для всех ресурсов:

compile_time

Тип в Ruby: true, false | Значение по умолчанию: false

Управляет фазой выполнения ресурса на узле. Установите в значение true, чтобы запустить во время построения коллекции ресурсов (compile phase). Установите в значение false, чтобы запустить во время конфигурирования узла Клиентом Chef Infra (converge phase).

ignore_failure

Тип в Ruby: true, false, :quiet | Значение по умолчанию: false

Продолжать выполнение рецепта, если ресурс завершится неудачно по любой причине. :quiet не отобразит полный стек вызовов, и рецепт продолжит выполнение, если ресурс завершится неудачно.

retries

Тип в Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехватить исключения и повторить ресурс.

retry_delay

Тип в Ruby: Целое число | Значение по умолчанию: 2

Задержка повторной попытки (в секундах).

sensitive

Тип в Ruby: true, false | Значение по умолчанию: false

Обеспечить, чтобы конфиденциальные данные ресурса не регистрировались Клиентом Chef Infra.

Уведомления

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
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 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.

Примеры


У этого ресурса нет примеров.

ресурс macos_app_management

Используйте ресурс macos_app_management для настройки узлов для использования Munki для управления приложениями

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса macos_app_management:

macos_app_management 'name' do
  munki_client_download_url      String
  munki_password                 String
  munki_repo_url                 String
  munki_user                     String
  action                         Symbol # defaults to :install if not specified
end

где:

  • macos_app_management — это ресурс.
  • name — имя, присвоенное блоку ресурса.
  • action определяет действия, которые Chef Infra Client выполнит для приведения узла в желаемое состояние.
  • munki_client_download_url, munki_password, munki_repo_url и munki_user — доступные свойства этого ресурса.

Действия


У него есть следующие действия:

:install
Устанавливает клиента на узел macOS.
:nothing
Этот блок ресурса не выполняет никаких действий, пока не будет уведомлён другим ресурсом о необходимости выполнить действие. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс macos_app_management имеет следующие свойства:

munki_client_download_url
Тип Ruby: Строка

URL, откуда узлы будут загружать клиент Munki.

munki_password
Тип Ruby: Строка

Пароль, связанный с учётной записью munki_user.

munki_repo_url
Тип Ruby: Строка

URL репозитория, который узлы будут использовать для загрузки приложений, настроек и т. д.

munki_user
Тип Ruby: Строка

Имя пользователя, используемое для подключения к munki_repo_url.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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
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 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.

Примеры


Этот ресурс не имеет примеров.

Ресурс macos_automatic_logout

Используйте ресурс macos_automatic_logout для установки автоматического выхода из системы после определённого времени.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса macos_automatic_logout:

macos_automatic_logout 'name' do
  autologout_time      Integer # default value: 3600
  action               Symbol # defaults to :enable if not specified
end

где:

  • macos_automatic_logout — это ресурс.
  • name — имя, заданное для блока ресурса.
  • action определяет, какие шаги предпримет Chef Infra Client для приведения узла в желаемое состояние.
  • autologout_time — свойство, доступное для этого ресурса.

Действия


У этого ресурса есть следующие действия:

:disable
:enable
:nothing
Этот блок ресурса не действует, пока другой ресурс не уведомит его о выполнении действия. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс macos_automatic_logout имеет следующие свойства:

autologout_time
Тип Ruby: Целое число | Значение по умолчанию: 3600

Количество секунд, которое должно пройти до выхода из системы. По умолчанию 1 час


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


Этот ресурс не имеет примеров.

Ресурс macos_automatic_software_updates

Используйте ресурс macos_automatic_software_updates для настройки обновлений системы и приложений на macOS.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса macos_automatic_software_updates:

macos_automatic_software_updates 'name' do
  check                  true, false
  download               true, false
  install_app_store      true, false
  install_critical       true, false
  install_os             true, false
  action                 Symbol # defaults to :set if not specified
end

где:

  • macos_automatic_software_updates — это ресурс.
  • name — имя, присвоенное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.
  • check, download, install_app_store, install_critical и install_os — доступные для этого ресурса свойства.

Действия


У этого ресурса есть следующие действия:

:nothing
Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса о необходимости выполнить действие. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:set

Свойства


Ресурс macos_automatic_software_updates имеет следующие свойства:

check
Тип в Ruby: true, false

Указать ОС, чтобы она проверяла наличие обновлений

download
Тип в Ruby: true, false

Указать ОС, чтобы она загружала обновления

install_app_store
Тип в Ruby: true, false

Установить это значение для добавления обновлений приложений

install_critical
Тип в Ruby: true, false

Установить это значение для установки критически важных обновлений

install_os
Тип в Ruby: true, false

Обновить ОС


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

Ресурс macos_desktop_screensaver

Используйте ресурс macos_desktop_screensaver для настройки параметров сбережения экрана на системах macOS.

Синтаксис


Полный синтаксис всех доступных свойств ресурса macos_desktop_screensaver:

macos_desktop_screensaver 'name' do
  delay_before_password_prompt      Integer # default value: 5
  idle_time                         Integer # default value: 20
  label                             String # default value: "chefsoftware"
  require_password                  true, false # default value: true
  action                            Symbol # defaults to :enable if not specified
end

где:

  • macos_desktop_screensaver — это ресурс.
  • name — имя, присвоенное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.
  • delay_before_password_prompt, idle_time, label и require_password — доступные для этого ресурса свойства.

Действия


У этого ресурса есть следующие действия:

:disable
Отключает сбережение экрана.
:enable
Устанавливает свойства и включает сбережение экрана.
:nothing
Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса о необходимости выполнить действие. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс macos_desktop_screensaver имеет следующие свойства:

delay_before_password_prompt
Тип в Ruby: Целое число | Значение по умолчанию: 5

Время в секундах, через которое сбережение экрана прерывается перед запросом пароля

idle_time
Тип в Ruby: Целое число | Значение по умолчанию: 20

Время в минутах, через которое включается сбережение экрана

label
Тип в Ruby: Строка | Значение по умолчанию: chefsoftware

Метка, используемая для идентификации сбережения экрана в списке выполняемых ресурсов. По умолчанию — chefsoftware

require_password
Тип в Ruby: true, false | Значение по умолчанию: true

True/false для включения пароля для сбережения экрана. По умолчанию — True


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У данного ресурса нет примеров.

ресурс macos_disk_encryption

Используйте ресурс macos_disk_encryption для применения шифрования FileVault на системах macOS.

Синтаксис


Полный синтаксис всех свойств, доступных ресурсу macos_disk_encryption:

macos_disk_encryption 'name' do
  action      Symbol # defaults to :enable if not specified
end

где:

  • macos_disk_encryption — ресурс.
  • name — имя, данное блоку ресурса.
  • action определяет, какие действия Chef Infra Client предпримет, чтобы привести узел в желаемое состояние.

Действия


У данного ресурса есть следующие действия:

:enable
Включает FileVault.
:nothing
Этот блок ресурса не выполняет никаких действий, пока не будет уведомлен другим ресурсом. После уведомления этот блок ресурса либо выполняется немедленно, либо ставится в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


У данного ресурса нет свойств.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

Ресурс macos_firewall

Используйте ресурс macos_firewall для включения брандмауэра на системах macOS.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса macos_firewall:

macos_firewall 'name' do
  action      Symbol # defaults to :enable if not specified
end

где:

  • macos_firewall — это ресурс.
  • name — имя, присвоенное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.

Действия


У него есть следующие действия:

:disable
:enable
:nothing
Этот блок ресурса не действует, пока другой ресурс не уведомит его о необходимости действия. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


У этого ресурса нет свойств.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

Ресурс macos_password_policy

Используйте ресурс macos_password_policy для настройки сложности паролей, длины паролей и т. д. на системах macOS.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса macos_password_policy:

macos_password_policy 'name' do
  exempt_user                      String
  lockout_time                     Integer
  max_failed_logins                Integer
  maximum_password_age             Integer # default value: 365
  minimum_lowercase_letters        Integer # default value: 0
  minimum_numeric_characters       Integer # default value: 0
  minimum_password_length          Integer # default value: 12
  minimum_special_characters       Integer # default value: 0
  minimum_uppercase_letters        Integer # default value: 0
  remember_how_many_passwords      Integer # default value: 3
  action                           Symbol # defaults to :set if not specified
end

где:

  • macos_password_policy — это ресурс.
  • name — это имя, данное блоку ресурса.
  • action определяет, какие шаги Chef Infra Client предпримет для того, чтобы привести узел в желаемое состояние.
  • exempt_user, lockout_time, max_failed_logins, maximum_password_age, minimum_lowercase_letters, minimum_numeric_characters, minimum_password_length, minimum_special_characters, minimum_uppercase_letters и remember_how_many_passwords — это доступные для этого ресурса свойства.

Действия


У данного ресурса есть следующие действия:

:nothing
Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:set
Это действие устанавливает политику паролей, как определено в его свойствах.

Свойства


Ресурс macos_password_policy имеет следующие свойства:

exempt_user
Тип в Ruby: Строка

Пользователь, которому не применяется политика паролей

lockout_time
Тип в Ruby: Целое число

Время блокировки учетной записи после превышения максимального количества неудачных попыток входа

max_failed_logins
Тип в Ruby: Целое число

Максимальное количество неудачных попыток входа перед блокировкой

maximum_password_age
Тип в Ruby: Целое число | Значение по умолчанию: 365

Максимальный срок в днях для пароля перед его изменением, по умолчанию 365

minimum_lowercase_letters
Тип в Ruby: Целое число | Значение по умолчанию: 0

Минимальное количество строчных букв, которые должны быть в пароле

minimum_numeric_characters
Тип в Ruby: Целое число | Значение по умолчанию: 0

Минимальное количество цифр, которые должны быть в пароле

minimum_password_length
Тип в Ruby: Целое число | Значение по умолчанию: 12

Минимальная длина пароля

minimum_special_characters
Тип в Ruby: Целое число | Значение по умолчанию: 0

Минимальное количество специальных символов, которые должны быть в пароле. Например, *&^%

minimum_uppercase_letters
Тип в Ruby: Целое число | Значение по умолчанию: 0

Минимальное количество заглавных букв, которые должны быть в пароле

remember_how_many_passwords
Тип в Ruby: Целое число | Значение по умолчанию: 3

Количество предыдущих паролей для запоминания, чтобы предотвратить использование устаревших паролей


Общие функции ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

Ресурс macos_power_management

Используйте ресурс macos_power_management для установки настроек электропитания устройства в стиле киоска, когда вам нужно, чтобы оно было всегда включено

Синтаксис


Полный синтаксис всех доступных свойств ресурса macos_power_management:

macos_power_management 'name' do
  computer_sleep_time      String # default value: "never"
  disk_sleep_time          String # default value: "never"
  display_sleep_time       String # default value: "never"
  action                   Symbol # defaults to :set if not specified
end

где:

  • macos_power_management — это ресурс.
  • name — это имя, данное блоку ресурса.
  • action определяет, какие шаги Chef Infra Client предпримет для того, чтобы привести узел в желаемое состояние.
  • computer_sleep_time, disk_sleep_time и display_sleep_time — это доступные для этого ресурса свойства.

Действия


У данного ресурса есть следующие действия:

:nothing
Этот блок ресурса не выполняет никаких действий, пока не получит уведомление от другого ресурса. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:set
Это действие устанавливает политику, как определено в его свойствах.

Свойства


Ресурс macos_power_management имеет следующие свойства:

computer_sleep_time
Ruby Type: String | Default Value: never

Значение времени от 1 до 60 минут или «никогда», используемое для установки компьютера в спящий режим. По умолчанию «никогда»

disk_sleep_time
Ruby Type: String | Default Value: never

Значение времени от 1 до 60 минут или «никогда», используемое для установки жёсткого диска в спящий режим. По умолчанию «никогда»

display_sleep_time
Ruby Type: String | Default Value: never

Значение времени от 1 до 60 минут или «никогда», используемое для установки дисплея в спящий режим. По умолчанию «никогда»


Общие возможности ресурсов


Ресурсы Chef включают общие свойства, уведомления и блокировки ресурсов.

Общие свойства

Следующие свойства являются общими для всех ресурсов:

compile_time

Ruby Type: true, false | Default Value: false

Управление фазой, в которой ресурс выполняется на узле. Установите в true, чтобы выполнить во время построения коллекции ресурсов (compile phase). Установите в false, чтобы выполнить во время конфигурации узла клиентом Chef Infra Client (converge phase).

ignore_failure

Ruby Type: true, false, :quiet | Default Value: false

Продолжить выполнение рецепта, если ресурс завершился неудачно по какой-либо причине. :quiet не отобразит полный стек отслеживания ошибок, и рецепт продолжит выполнение в случае неудачи ресурса.

retries

Ruby Type: Integer | Default Value: 0

Количество попыток перехвата исключений и повторной попытки ресурса.

retry_delay

Ruby Type: Integer | Default Value: 2

Задержка при повторной попытке (в секундах).

sensitive

Ruby Type: true, false | Default Value: false

Обеспечение того, чтобы конфиденциальные данные о ресурсах не регистрировались клиентом Chef InfraClient.

Уведомления

notifies

Ruby Type: Symbol, '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 Type: Symbol, '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.

Примеры


У этого ресурса нет примеров.

Ресурс rescue_account

Используйте ресурс rescue_account для предоставления администраторам учетной записи аварийного восстановления.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса rescue_account:

rescue_account 'name' do
  account_name      String
  password          String
  action            Symbol # defaults to :create if not specified
end

где:

  • rescue_account — это ресурс.
  • name — имя, заданное для блока ресурса.
  • action определяет, какие шаги Chef Infra Client предпримет, чтобы привести узел в желаемое состояние.
  • account_name и password — доступные свойства этого ресурса.

Действия


У ресурса есть следующие действия:

:create
Создает указанного в поле свойства пользователя.
:delete
Удаляет указанного пользователя.
:disable
Отключает учетную запись, если она была включена.
:enable
Включает учетную запись, если она была отключена.
:nothing
Этот блок ресурса не выполняется, пока не будет уведомлен другим ресурсом. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс rescue_account имеет следующие свойства:

account_name
Ruby Type: String | REQUIRED

Имя пользователя, который должен быть создан как аварийная учетная запись

password
Ruby Type: String | REQUIRED

Соответствующий пароль для этого пользователя


Общие возможности ресурсов


Ресурсы Chef включают общие свойства, уведомления и блокировки ресурсов.

Общие свойства

Следующие свойства являются общими для всех ресурсов:

compile_time

Ruby Type: true, false | Default Value: false

Управление фазой, в которой ресурс выполняется на узле. Установите в true, чтобы выполнить во время построения коллекции ресурсов (compile phase). Установите в false, чтобы выполнить во время конфигурации узла клиентом Chef Infra Client (converge phase).

ignore_failure

Ruby Type: true, false, :quiet | Default Value: false

Продолжить выполнение рецепта, если ресурс завершился неудачно по какой-либо причине. :quiet не отобразит полный стек отслеживания ошибок, и рецепт продолжит выполнение в случае неудачи ресурса.

retries

Ruby Type: Integer | Default Value: 0

Количество попыток перехвата исключений и повторной попытки ресурса.

retry_delay

Ruby Type: Integer | Default Value: 2

Задержка при повторной попытке (в секундах).

sensitive

Ruby Type: true, false | Default Value: false

Обеспечение того, чтобы конфиденциальные данные о ресурсах не регистрировались клиентом Chef InfraClient.

Уведомления

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
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 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.

Примеры


Этот ресурс не имеет примеров.

Ресурс windows_admin_control

Используйте ресурс windows_admin_control для обеспечения доступа уровня администратора для системных изменений.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_admin_control:

windows_admin_control 'name' do
  action      Symbol # defaults to :enable if not specified
end

где:

  • windows_admin_control — ресурс.
  • name — имя блока ресурса.
  • action — идентификатор шагов, которые Chef Infra Client выполнит для приведения узла в нужное состояние.

Действия


Ресурс имеет следующие действия:

:disable
:enable
:nothing
Этот блок ресурса не выполняется, пока не будет уведомлен другим ресурсом о выполнении действия. После уведомления этот блок ресурса выполняется либо немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Этот ресурс не имеет свойств.


Общие функции ресурсов


Ресурсы 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 InfraClient.

Уведомления

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
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 Infra. Основываясь на результатах этой оценки, свойство сторожа используется для указания клиенту Chef Infra, следует ли продолжать выполнение ресурса. Свойство сторожа принимает либо строковое значение, либо значение блока Ruby:

  • Строка выполняется как команда оболочки. Если команда возвращает 0, сторож применяется. Если команда возвращает любое другое значение, то свойство сторожа не применяется. Строковые сторожа в блоке powershell_script выполняют команды Windows PowerShell и могут возвращать true в дополнение к 0.
  • Блок выполняется как код Ruby, который должен вернуть либо true, либо false. Если блок возвращает true, свойство сторожа применяется. Если блок возвращает false, свойство сторожа не применяется.

Свойство сторожа полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние по мере выполнения, а затем, если желаемое состояние присутствует, для того, чтобы клиент Chef Infra ничего не делал.

Свойства

Ниже приведены свойства, которые можно использовать для определения сторожа, который оценивается во время фазы выполнения выполнения клиента Chef Infra:

not_if

Запретить выполнение ресурса, когда условие возвращает true.

only_if

Разрешить выполнение ресурса только в том случае, если условие возвращает true.

Примеры


У этого ресурса нет примеров.

Ресурс windows_app_management

Используйте ресурс windows_app_management для настройки узлов для использования Gorilla для управления приложениями.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_app_management:

windows_app_management 'name' do
  update_check_frequency      String
  action                              Symbol # defaults to :enable if not specified
end

где:

  • windows_app_management — это ресурс.
  • name — это имя, данное блоку ресурса.
  • action определяет, какие шаги предпримет клиент Chef Infra для приведения узла в желаемое состояние.
  • update_check_frequency — это свойство, доступное для этого ресурса.

Действия


У него есть следующие действия:

:disable
Отключает запланированную задачу Windows.
:enable
Устанавливает свойство, устанавливает Gorilla, настраивает локальную установку с файлом yaml и задает запланированную задачу Windows для выполнения с интервалом, установленным в how_often_to_check_for_updates.
:nothing
Этот блок ресурса не действует, пока другой ресурс не уведомит его о действиях. После уведомления этот блок ресурса либо выполняется немедленно, либо ставится в очередь для выполнения в конце выполнения клиента Chef Infra.

Свойства


Ресурс windows_app_management имеет следующие свойства:

update_check_frequency
Тип Ruby: СтрокаДопустимые значения: "daily", "minute", "monthly", "none", "on_idle", "on_logon", "once", "onstart", "weekly"

Как часто клиент Gorilla должен проверять наличие обновлений.


Общие функции ресурсов


Ресурсы Chef включают общие свойства, уведомления и сторожа ресурсов.

Общие свойства

Следующие свойства являются общими для каждого ресурса:

compile_time

Тип Ruby: true, false | Значение по умолчанию: false

Управление фазой, в которой ресурс выполняется на узле. Установите в значение true, чтобы запустить во время построения коллекции ресурсов (фаза compile phase). Установите в значение false, чтобы запустить во время настройки узла клиентом Chef Infra (фаза converge phase).

ignore_failure

Тип Ruby: true, false, :quiet | Значение по умолчанию: false

Продолжить выполнение рецепта, если ресурс завершился ошибкой по любой причине. :quiet не будет отображать полный стек вызовов, и рецепт продолжит выполнение, если ресурс завершится ошибкой.

retries

Тип Ruby: Целое число | Значение по умолчанию: 0

Количество попыток перехватить исключения и повторить ресурс.

retry_delay

Тип Ruby: Целое число | Значение по умолчанию: 2

Задержка повторной попытки (в секундах).

sensitive

Тип Ruby: true, false | Значение по умолчанию: false

Обеспечение того, чтобы конфиденциальные данные ресурса не регистрировались клиентом Chef Infra.

Уведомления

notifies

Тип Ruby: Символ, 'Chef::Resource[Строка]'

Ресурс может уведомить другой ресурс о действиях при изменении своего состояния. Укажите 'resource[name]', :action, который должен выполнить ресурс, и затем :timer для этого действия. Ресурс может уведомить более одного ресурса; используйте инструкцию notifies для каждого ресурса, который должен быть уведомлен.

Если указанный ресурс не существует, генерируется ошибка. В отличие от этого, subscribes не завершится ошибкой, если исходный ресурс не найден.

Таймер определяет момент во время выполнения клиента Chef Infra, когда выполняется уведомление. Доступны следующие таймеры:

:before

Указывает, что действие по уведомленному ресурсу должно быть выполнено до обработки блока ресурса, в котором находится уведомление.

:delayed

По умолчанию. Указывает, что уведомление должно быть поставлено в очередь и затем выполнено в конце выполнения клиента Chef Infra.

:immediate, :immediately

Указывает, что уведомление должно быть выполнено немедленно, для каждого уведомленного ресурса.

Синтаксис для notifies:

notifies :action, 'resource[name]', :timer
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 Infra. Основываясь на результатах этой оценки, свойство сторожа используется для указания клиенту Chef Infra, следует ли продолжать выполнение ресурса. Свойство сторожа принимает либо строковое значение, либо значение блока Ruby:

  • Строка выполняется как команда оболочки. Если команда возвращает 0, сторож применяется. Если команда возвращает любое другое значение, то свойство сторожа не применяется. Строковые сторожа в блоке powershell_script выполняют команды Windows PowerShell и могут возвращать true в дополнение к 0.
  • Блок выполняется как код Ruby, который должен вернуть либо true, либо false. Если блок возвращает true, свойство сторожа применяется. Если блок возвращает false, свойство сторожа не применяется.

Свойство сторожа полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние по мере выполнения, а затем, если желаемое состояние присутствует, для того, чтобы клиент Chef Infra ничего не делал.

Свойства

Ниже приведены свойства, которые можно использовать для определения сторожа, который оценивается во время фазы выполнения выполнения клиента Chef Infra:

not_if

Запретить выполнение ресурса, когда условие возвращает true.

only_if

Разрешить выполнение ресурса только в том случае, если условие возвращает true.

Примеры


У этого ресурса нет примеров.

Ресурс windows_automatic_logout

Используйте ресурс windows_automatic_logout для настройки системы на автоматический выход после определенного времени.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_automatic_logout:

windows_automatic_logout 'name' do
  autologout           true, false # default value: true
  autologout_time      Integer # default value: 3600
  action               Symbol # defaults to :set if not specified
end

где:

  • windows_automatic_logout — это ресурс.
  • name — это имя, данное блоку ресурса.
  • action определяет, какие шаги предпримет клиент Chef Infra для приведения узла в желаемое состояние.
  • autologout и autologout_time — это свойства, доступные для этого ресурса.

Действия


У него есть следующие действия:

:nothing
Этот блок ресурса не действует, пока другой ресурс не уведомит его о действиях. После уведомления этот блок ресурса либо выполняется немедленно, либо ставится в очередь для выполнения в конце выполнения клиента Chef Infra.
:set

Свойства


У ресурса windows_automatic_logout есть следующие свойства:

autologout
Тип в Ruby: true, false | Значение по умолчанию: true

Включить выход из системы по причине бездействия

autologout_time
Тип в Ruby: Целое число | Значение по умолчанию: 3600

Время в секундах, через которое система выйдет из системы. По умолчанию 1 час


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

ресурс windows_defender

Используйте ресурс windows_defender для включения или выключения службы Microsoft Windows Defender.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_defender:

windows_defender 'name' do
  intrusion_protection_system      true, false # default value: true
  lock_ui                          true, false
  realtime_protection              true, false
  scan_archives                    true, false # default value: true
  scan_email                       true, false # default value: true
  scan_mapped_drives               true, false # default value: true
  scan_network_files               true, false # default value: true
  scan_removable_drives            true, false # default value: true
  scan_scripts                     true, false # default value: true
  action      Symbol # defaults to :enable if not specified
end

где:

  • windows_defender — это ресурс.
  • name — это имя, заданное для блока ресурса.
  • action определяет шаги, которые клиент Chef Infra Client предпримет для приведения узла к желаемому состоянию.
  • intrusion_protection_system, lock_ui, realtime_protection, scan_archives, scan_email, scan_mapped_drives, scan_network_files, scan_removable_drives и scan_scripts — это свойства, доступные для данного ресурса.

Действия


У него есть следующие действия:

:disable
Выключить Windows Defender.
:enable
Включить Windows Defender и настроить параметры.
:nothing
Этот блок ресурса не действует, пока не будет уведомлен другим ресурсом о выполнении действия. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения клиента Chef Infra Client.

Свойства


Ресурс windows_defender имеет следующие свойства:

intrusion_protection_system
Тип в Ruby: true, false | Значение по умолчанию: true

Включить сетевую защиту от эксплуатации известных уязвимостей.

lock_ui
Тип в Ruby: true, false

Заблокировать интерфейс пользователя, чтобы пользователи не могли изменять параметры Windows Defender.

realtime_protection
Тип в Ruby: true, false

Включить сканирование в реальном времени загружаемых файлов и вложений.

scan_archives
Тип в Ruby: true, false | Значение по умолчанию: true

Сканировать архивы файлов, такие как .zip или .gz.

scan_email
Тип в Ruby: true, false | Значение по умолчанию: true

Сканировать электронную почту на предмет вредоносных программ.

scan_mapped_drives
Тип в Ruby: true, false | Значение по умолчанию: true

Сканировать файлы на подключенных сетевых дисках.

scan_network_files
Тип в Ruby: true, false | Значение по умолчанию: true

Сканировать файлы в сети.

scan_removable_drives
Тип в Ruby: true, false | Значение по умолчанию: true

Сканировать содержимое съемных дисков.

scan_scripts
Тип в Ruby: true, false | Значение по умолчанию: true

Сканировать скрипты в сканировании на вредоносное ПО.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


Этот ресурс не имеет примеров.

ресурс windows_defender_exclusion

Используйте ресурс windows_defender_exclusion для исключения путей, процессов или типов файлов из сканирования реального времени Windows Defender.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_defender_exclusion:

windows_defender_exclusion 'name' do
  extensions         String, Array # default value: []
  paths              String, Array # default value: []
  process_paths      String, Array # default value: []
  action             Symbol # defaults to :add if not specified
end

где:

  • windows_defender_exclusion — ресурс.
  • name — имя блока ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет, чтобы привести узел в желаемое состояние.
  • extensions, paths и process_paths — доступные свойства этого ресурса.

Действия


У ресурса есть следующие действия:

:add
:nothing
Этот блок ресурса не выполняется, если не уведомлен другим ресурсом о выполнении действия. После уведомления, этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remove

Свойства


У ресурса windows_defender_exclusion есть следующие свойства:

extensions
Тип Ruby: Строка, Массив | Значение по умолчанию: []

Расширения файлов, которые следует исключить из сканирования.

paths
Тип Ruby: Строка, Массив | Значение по умолчанию: []

Пути к файлам или каталогам, которые следует исключить из сканирования.

process_paths
Тип Ruby: Строка, Массив | Значение по умолчанию: []

Пути к исполняемым файлам, которые следует исключить из сканирования.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

ресурс windows_desktop_screensaver

Используйте ресурс windows_desktop_screensaver для настройки параметров экрана блокировки на системах Windows.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_desktop_screensaver:

windows_desktop_screensaver 'name' do
  allow_lower_user_idle_time      true, false # default value: false
  idle_time                       Integer # default value: 20
  require_password                true, false # default value: true
  screensaver_name                String
  action                          Symbol # defaults to :enable if not specified
end

где:

  • windows_desktop_screensaver — это ресурс.
  • name — это имя, заданное для блока ресурса.
  • action определяет, какие шаги выполнит Chef Infra Client, чтобы привести узел в желаемое состояние.
  • allow_lower_user_idle_time, idle_time, require_password и screensaver_name — это свойства, доступные для данного ресурса.

Действия


У него есть следующие действия:

:disable
Отключить экран блокировки рабочего стола.
:enable
Включить экран блокировки рабочего стола.
:nothing
Этот блок ресурсов не действует, если другой ресурс не уведомит его о выполнении действия. После уведомления этот блок ресурсов либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс windows_desktop_screensaver имеет следующие свойства:

allow_lower_user_idle_time
Тип Ruby: true, false | Значение по умолчанию: false

Разрешить пользователям устанавливать время простоя экрана блокировки ниже системных требований.

idle_time
Тип Ruby: Целое число | Значение по умолчанию: 20

Время простоя в минутах, прежде чем включится экран блокировки.

require_password
Тип Ruby: true, false | Значение по умолчанию: true

Требовать пароль при пробуждении из-под экрана блокировки.

screensaver_name
Тип Ruby: Строка

Имя конкретного или пользовательского экрана блокировки для включения.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


Этот ресурс не имеет примеров.

Ресурс windows_desktop_winrm_settings

Используйте ресурс windows_desktop_winrm_settings для настройки и сброса параметров WinRM на узле. Chef Infra Client не требует этого для работы.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_desktop_winrm_settings:

windows_desktop_winrm_settings 'name' do
  action      Symbol # defaults to :enable if not specified
end

где:

  • windows_desktop_winrm_settings — это ресурс.
  • name — имя, данное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.

Действия


Ресурс имеет следующие действия:

:disable
Отключает WinRM и отключает политику брандмауэра.
:enable
Включает WinRM и устанавливает политику брандмауэра.
:nothing
Этот блок ресурса не действует, пока другой ресурс не уведомит его о действии. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Этот ресурс не имеет свойств.


Общие возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


Этот ресурс не имеет примеров.

Ресурс windows_disk_encryption

Используйте ресурс windows_disk_encryption для включения или отключения BitLocker Drive Encryption на системах Windows.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_disk_encryption:

windows_disk_encryption 'name' do
  reboot_after_update      true, false # default value: true
  action      Symbol # defaults to :enable if not specified
end

где:

  • windows_disk_encryption — это ресурс.
  • name — имя, данное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.

Действия


Ресурс имеет следующие действия:

:disable
Отключает BitLocker.
:enable
Включает BitLocker.
:nothing
Этот блок ресурсов не действует, пока другой ресурс не уведомит его о действии. После уведомления этот блок ресурсов либо выполняется немедленно, либо ставится в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс windows_disk_encryption имеет следующие свойства:

reboot_after_update
Тип в Ruby: true, false | Значение по умолчанию: true

Управление перезагрузкой после включения BitLocker


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У этого ресурса нет примеров.

Ресурс windows_firewall

Используйте ресурс windows_firewall для включения или выключения службы брандмауэра Windows и всех профилей.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_firewall:

windows_firewall 'name' do
  action      Symbol # defaults to :enable if not specified
end

где:

  • windows_firewall — ресурс.
  • name — имя, данное блоку ресурса.
  • action — идентификатор шагов, которые Chef Infra Client выполнит для приведения узла к желаемому состоянию.

Действия


У него есть следующие действия:

:disable
Отключить службу брандмауэра Windows
:enable
Включить службу брандмауэра Windows и все профили
:nothing
Этот блок ресурсов не действует, пока другой ресурс не уведомит его о действии. После уведомления этот блок ресурсов либо выполняется немедленно, либо ставится в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


У этого ресурса нет свойств.


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


У данного ресурса нет примеров.

Ресурс windows_password_policy

Используйте ресурс windows_password_policy для настройки сложности паролей, длины паролей и т. д.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_password_policy:

windows_password_policy 'name' do
  change_password_at_next_logon              true, false # default value: false
  group_name_for_expired_passwords           String # default value: "Users"
  group_name_for_password_never_expires      String # default value: "Administrators"
  maximum_password_age                       Integer # default value: 365
  minimum_password_length                    Integer # default value: 12
  password_never_expires                     true, false
  require_complex_passwords                  true, false # default value: true
  action                                     Symbol # defaults to :set if not specified
end

где:

  • windows_password_policy — ресурс.
  • name — имя, данное блоку ресурса.
  • action — идентификатор шагов, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.
  • change_password_at_next_logon, group_name_for_expired_passwords, group_name_for_password_never_expires, maximum_password_age, minimum_password_length, password_never_expires и require_complex_passwords — доступные свойства данного ресурса.

Действия


У него есть следующие действия:

:nothing
Этот блок ресурса не действует, пока не будет уведомлён другим ресурсом о выполнении действия. После уведомления этот блок ресурса выполняется либо немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:set
Устанавливает политику паролей с использованием свойств.

Свойства


Ресурс windows_password_policy имеет следующие свойства:

change_password_at_next_logon
Тип Ruby: true, false | Значение по умолчанию: false

Принудительно заставить всех пользователей в локальной группе пользователей изменить пароли при следующем входе в систему

group_name_for_expired_passwords
Тип Ruby: Строка | Значение по умолчанию: Users

Группа, пароли которых должны быть изменены при следующем входе в систему

group_name_for_password_never_expires
Тип Ruby: Строка | Значение по умолчанию: Administrators

Группа, к которой применяется правило password_never_expires. По умолчанию — Admins

maximum_password_age
Тип Ruby: Целое число | Значение по умолчанию: 365

Максимальный срок годности пароля в днях до его изменения. По умолчанию — 365

minimum_password_length
Тип Ruby: Целое число | Значение по умолчанию: 12

Устанавливает минимальную длину пароля. По умолчанию — 12 символов

password_never_expires
Тип Ruby: true, false

True/False, чтобы пароли никогда не истекали. По умолчанию установлено True

require_complex_passwords
Тип Ruby: true, false | Значение по умолчанию: true

Параметр True/False, требующий специальных символов, заглавных и строчных букв в пароле


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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.

Примеры


Этот ресурс не имеет примеров.

Ресурс windows_power_management

Используйте ресурс windows_power_management для установки настроек питания устройства в стиле киоска, когда вам нужно, чтобы оно всегда было включено.

Синтаксис


Полный синтаксис всех свойств, доступных для ресурса windows_power_management:

windows_power_management 'name' do
  disk_timeout            Integer
  hibernate_timeout       Integer
  monitor_timeout         Integer
  power_level             String # default value: "balanced"
  power_scheme_label      String
  standby_timeout         Integer
  action                  Symbol # defaults to :set if not specified
end

где:

  • windows_power_management — это ресурс.
  • name — имя, данное блоку ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в желаемое состояние.
  • disk_timeout, hibernate_timeout, monitor_timeout, power_level, power_scheme_label и standby_timeout — доступные свойства этого ресурса.

Действия


У него есть следующие действия:

:nothing
Этот блок ресурса не действует, пока другой ресурс не уведомит его о необходимости принять меры. После уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:set
Установите схему питания узла на «сбалансированную» или «максимальную».

Свойства


Ресурс windows_power_management имеет следующие свойства:

disk_timeout
Тип Ruby: Целое число

Количество минут ожидания перед отключением жесткого диска

hibernate_timeout
Тип Ruby: Целое число

Количество минут ожидания перед переходом в спящий режим

monitor_timeout
Тип Ruby: Целое число

Количество минут ожидания перед отключением дисплея

power_level
Тип Ruby: Строка | Значение по умолчанию: balanced

Существует 2 уровня питания — сбалансированный и максимальный.

power_scheme_label
Тип Ruby: Строка

Имя метки для добавления префикса к вашей схеме питания. Код дублирует существующую схему питания, чтобы она оставалась отличной

standby_timeout
Тип Ruby: Целое число

Количество минут ожидания перед переходом системы в режим ожидания


Общие функциональные возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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, следует ли продолжать выполнение ресурса.

  • Строка выполняется как команда оболочки. Если команда возвращает 0, применяется защита. Если команда возвращает любое другое значение, то свойство защиты не применяется. Строковые защиты в powershell_script выполняют команды Windows PowerShell и могут возвращать true в дополнение к 0.
  • Блок выполняется как код Ruby, который должен возвращать либо true, либо false. Если блок возвращает true, свойство защиты применяется. Если блок возвращает false, свойство защиты не применяется.

Свойство защиты полезно для обеспечения идемпотентности ресурса, позволяя этому ресурсу проверять желаемое состояние во время его выполнения, а затем, если желаемое состояние присутствует, Chef Infra Client ничего не делает.

Свойства

Следующие свойства могут использоваться для определения защиты, которая оценивается во время фазы выполнения выполнения Chef Infra Client:

not_if

Запретить выполнение ресурса, когда условие возвращает true.

only_if

Разрешить выполнение ресурса только в том случае, если условие возвращает true.

Примеры


У данного ресурса нет примеров.

Ресурс windows_update_settings

Используйте ресурс windows_update_settings для управления различными параметрами обновления Windows.

Синтаксис


Полный синтаксис для всех свойств, доступных для ресурса windows_update_settings:

windows_update_settings 'name' do
  add_to_target_wsus_group                 true, false # default value: false
  automatic_update_option                  Integer # default value: 4
  automatically_install_minor_updates      true, false # default value: false
  block_windows_update_website             true, false # default value: false
  custom_detection_frequency               Integer # default value: 22
  disable_automatic_updates                true, false # default value: false
  disable_os_upgrades                      true, false # default value: false
  elevate_non_admins                       true, false # default value: true
  enable_detection_frequency               true, false # default value: false
  no_reboot_with_users_logged_on           true, false # default value: true
  scheduled_install_day                    Integer # default value: 0
  scheduled_install_hour                   Integer
  target_wsus_group_name                   String
  update_other_ms_products                 true, false # default value: true
  use_custom_update_server                 true, false # default value: false
  wsus_server_url                          String
  wsus_status_server_url                   String
  action                                   Symbol # defaults to :enable if not specified
end

где:

  • windows_update_settings — это ресурс.
  • name — имя, заданное для блока ресурса.
  • action определяет действия, которые Chef Infra Client выполнит для приведения узла в нужное состояние.
  • add_to_target_wsus_group, automatic_update_option, automatically_install_minor_updates, block_windows_update_website, custom_detection_frequency, disable_automatic_updates, disable_os_upgrades, elevate_non_admins, enable_detection_frequency, no_reboot_with_users_logged_on, scheduled_install_day, scheduled_install_hour, target_wsus_group_name, update_other_ms_products, use_custom_update_server, wsus_server_url и wsus_status_server_url — доступные свойства данного ресурса.

Действия


У ресурса есть следующие действия:

:enable
Переопределяет значения по умолчанию этими пользовательскими параметрами.
:nothing
Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса о выполнении. После получения уведомления этот блок ресурса выполняется немедленно или помещается в очередь для выполнения в конце выполнения Chef Infra Client.

Свойства


Ресурс windows_update_settings имеет следующие свойства:

add_to_target_wsus_group
Тип Ruby: true, false | Значение по умолчанию: false

Если у вас есть сервер WSUS и целевые группы, установите это значение в True

automatic_update_option
Тип Ruby: Целое число | Значение по умолчанию: 4

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

automatically_install_minor_updates
Тип Ruby: true, false | Значение по умолчанию: false

Автоматическая установка незначительных обновлений. По умолчанию False

block_windows_update_website
Тип Ruby: true, false | Значение по умолчанию: false

Отказывает Windows Update в получении обновлений

custom_detection_frequency
Тип Ruby: Целое число | Значение по умолчанию: 22

Если вы решили переопределить частоту обнаружения ОС, укажите свой выбор здесь. Допустимые значения: 0 — 22

disable_automatic_updates
Тип Ruby: true, false | Значение по умолчанию: false

Препятствует автоматическому обновлению. По умолчанию False, чтобы разрешить автоматические обновления

disable_os_upgrades
Тип Ruby: true, false | Значение по умолчанию: false

True/False для отключения обновлений ОС.

elevate_non_admins
Тип Ruby: true, false | Значение по умолчанию: true

Это свойство позволяет обычным учетным записям временно повышать привилегии для установки исправлений

enable_detection_frequency
Тип Ruby: true, false | Значение по умолчанию: false

Используется для переопределения значения ОС по умолчанию о том, как часто проверять наличие обновлений

no_reboot_with_users_logged_on
Тип Ruby: true, false | Значение по умолчанию: true

Препятствует перезагрузке ОС, когда кто-то находится на консоли. По умолчанию True

scheduled_install_day
Тип Ruby: Целое число | Значение по умолчанию: 0

Числовое значение, чтобы указать Windows, когда устанавливать обновления. По умолчанию 0 — ежедневно

scheduled_install_hour
Тип Ruby: Целое число

Если вы выбрали запланированный день для установки, выберите час в этот день для установки

target_wsus_group_name
Тип Ruby: Строка

Это имя целевой группы WSUS, в которой должен находиться узел

update_other_ms_products
Тип Ruby: true, false | Значение по умолчанию: true

Позволяет другим продуктам Microsoft получать обновления тоже

use_custom_update_server
Тип Ruby: true, false | Значение по умолчанию: false

Указывает узлам использовать сервер WSUS. По умолчанию False — использовать Microsoft для обновлений

wsus_server_url
Тип Ruby: Строка

URL вашего сервера WSUS, если он используется

wsus_status_server_url
Тип Ruby: Строка

URL сервера WSUS Status. Он может быть таким же, как URL для самого сервера WSUS


Общие возможности ресурсов


Ресурсы 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 InfraClient.

Уведомления

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
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 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.

Примеры


Этот ресурс не имеет примеров.


© 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/desktop/resources/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API