Spec-Zone.ru › Chef 17

Ресурс windows_feature

Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл windows_feature.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.

Все страницы ресурсов Infra


Используйте ресурс windows_feature для добавления, удаления или полного удаления функций и ролей Windows. Этот ресурс вызывает ресурсы windows_feature_dism или windows_feature_powershell в зависимости от выбранного метода установки и по умолчанию использует DISM, который доступен в редакциях Windows Workstation и Server.

Новое в Chef Infra Client 14.0.

Синтаксис


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

windows_feature 'name' do
  all                   true, false # default value: false
  feature_name          Array, String # default value: 'name' unless specified
  install_method        Symbol # default value: :windows_feature_dism
  management_tools      true, false # default value: false
  source                String
  timeout               Integer # default value: 600
  action                Symbol # defaults to :install if not specified
end

где:

  • windows_feature — это ресурс.
  • name — это имя блока ресурса.
  • action определяет шаги, которые Chef Infra Client предпримет для приведения узла в нужное состояние.
  • all, feature_name, install_method, management_tools, source, и timeout — это свойства, доступные для этого ресурса.

Действия


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

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

Свойства


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

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

Установить все дочерние функции.

feature_name
Тип Ruby: Массив, Строка | Значение по умолчанию: The resource block's name

Имя функции(ей) или роли(ей) для установки, если они отличаются от имени блока ресурса. Одна и та же функция может иметь разные имена в зависимости от используемого базового метода установки (например, DHCPServer vs DHCP; DNS-Server-Full-Role vs DNS).

install_method
Тип Ruby: Символ | Значение по умолчанию: :windows_feature_dism Разрешенные значения: :windows_feature_dism, :windows_feature_powershell, :windows_feature_servermanagercmd

Базовый метод установки для установки функции. Укажите :windows_feature_dism для DISM или :windows_feature_powershell для PowerShell.

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

Установить все соответствующие инструменты управления для ролей, служб ролей или функций (только PowerShell).

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

Укажите локальный репозиторий для установки функции.

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

Указывает время ожидания (в секундах) для установки функции.


Общая функциональность ресурса


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

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

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

compile_time

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

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

ignore_failure

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

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

retries

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

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

retry_delay

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

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

sensitive

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

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

Уведомления

notifies

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

Ресурс может уведомить другой ресурс о выполнении действия при изменении его состояния. Укажите '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_feature в рецептах:

Установка функции DHCP Server:

windows_feature 'DHCPServer' do
  action :install
end

Установка функции .Net 3.5.1 с использованием файлов репозитория на DVD:

windows_feature "NetFx3" do
  action :install
  source 'd:\sources\sxs'
end

Удаление функций Telnet Server и Client:

windows_feature %w(TelnetServer TelnetClient) do
  action :remove
end

Добавление функции SMTP Server с использованием поставщика PowerShell:

windows_feature 'smtp-server' do
  action :install
  all true
  install_method :windows_feature_powershell
end

Установите несколько функций с помощью одного ресурса с поставщиком PowerShell:

windows_feature %w(Web-Asp-Net45 Web-Net-Ext45) do
  action :install
  install_method :windows_feature_powershell
end

Установите функцию службы политики сети и доступа, включая инструменты управления:

windows_feature 'NPAS' do
  action :install
  management_tools true
  install_method :windows_feature_powershell
end

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/resources/windows_feature/

Spec-Zone.ru

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