Ресурс windows_feature_powershell
Эта страница сгенерирована из исходного кода клиента Chef Infra. Чтобы предложить изменение, отредактируйте файл windows_feature_powershell.rb и отправьте запрос на вытягивание в репозитории Chef Infra Client.
Используйте ресурс windows_feature_powershell для добавления, удаления или полного удаления функций и ролей Windows с помощью PowerShell. Этот ресурс предлагает значительные преимущества по скорости по сравнению с ресурсом windows_feature_dism, но требует установки Remote Server Administration Tools на несерверных версиях Windows.
Новая функция в Chef Infra Client 14.0.
Синтаксис
Полный синтаксис всех свойств, доступных для ресурса windows_feature_powershell, выглядит следующим образом:
windows_feature_powershell 'name' do
all true, false # default value: false
feature_name Array, String # default value: 'name' unless specified
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_powershell— это ресурс. -
name— это имя, заданное для блока ресурса. -
actionопределяет, какие шаги клиент Chef Infra предпримет для приведения узла в желаемое состояние. -
all,feature_name,management_tools,source, иtimeout— это доступные свойства этого ресурса.
Действия
Ресурс windows_feature_powershell имеет следующие действия:
:delete- Удалить роль или функцию Windows из образа с помощью PowerShell.
:install- Установить роль или функцию Windows с помощью PowerShell. (по умолчанию)
:nothing- Этот блок ресурса не действует, пока не получит уведомление от другого ресурса о действии. После получения уведомления этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:remove- Удалить роль или функцию Windows с помощью PowerShell.
Свойства
Ресурс windows_feature_powershell имеет следующие свойства:
-
all - Тип Ruby: true, false | Значение по умолчанию:
falseУстанавливает все подфункции. При установке в
true, это эквивалентно указанию переключателя-InstallAllSubFeaturesсAdd-WindowsFeature.
-
feature_name - Тип Ruby: Массив, Строка | Значение по умолчанию:
The resource block's nameИмя функции(ей) или роли(ей) для установки, если они отличаются от имени блока ресурса.
-
management_tools - Тип Ruby: true, false | Значение по умолчанию:
falseУстановить все применимые инструменты управления для ролей, служб ролей или функций.
-
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.
Уведомления
-
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_powershell в рецептах:
Добавить функцию SMTP Server:
windows_feature_powershell "smtp-server" do
action :install
all true
end
Установить несколько функций с помощью одного ресурса:
windows_feature_powershell ['Web-Asp-Net45', 'Web-Net-Ext45'] do
action :install
end
Установить функцию Network Policy and Access Service:
windows_feature_powershell 'NPAS' do
action :install
management_tools true
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_powershell/