Spec-Zone.ru › Chef 18

Ресурс powershell_package

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

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


Используйте ресурс powershell_package для установки и управления пакетами через PowerShell Package Manager для платформы Microsoft Windows. Ресурс powershell_package требует административных прав, а источник должен быть настроен в PowerShell Package Manager с помощью команды Register-PackageSource или ресурса powershell_package_source.

Новое в Chef Infra Client 12.16.

Синтаксис


Блок ресурса powershell_package управляет пакетом на узле, обычно, устанавливая его. Самое простое использование ресурса powershell_package:

powershell_package 'package_name'

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

Ресурс powershell_package имеет следующий синтаксис:

powershell_package 'name' do
  options                   String, Array
  package_name              String, Array
  skip_publisher_check      true, false # default value: false
  source                    String
  timeout                   String, Integer
  version                   String, Array
  action                    Symbol # defaults to :install if not specified
end

где:

  • powershell_package — это ресурс.
  • name — это имя, данное блоку ресурса.
  • action определяет, какие шаги Chef Infra Client предпримет для приведения узла в желаемое состояние.
  • options, package_name, skip_publisher_check, source, timeout, и version — доступные свойства для этого ресурса.

Действия


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

:install
По умолчанию. Установить пакет. Если версия указана, установить указанную версию пакета.
:remove
Удалить пакет.

Свойства


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

options
Тип в Ruby: Строка, Массив

Дополнительные параметры команд, которые передаются команде.

package_name
Тип в Ruby: Строка, Массив

Имя пакета. Значение по умолчанию: имя блока ресурса.

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

Пропустить проверку автора модуля.

Новое в Chef Client 14.3

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

Указать источник пакета.

Новое в Chef Client 14.0

timeout
Тип в Ruby: Строка, Целое число

Время ожидания (в секундах) перед таймаутом.

version
Тип в 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 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]', действие, которое необходимо выполнить, а затем :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.

Примеры


Следующие примеры демонстрируют различные подходы к использованию ресурса powershell_package в рецептах:

Установка конкретной версии пакета:

powershell_package 'xCertificate' do
  action :install
  version '1.1.0.0'
end

Установка нескольких пакетов:

powershell_package 'Install Multiple Packages' do
  action :install
  package_name %w(xCertificate xNetworking)
end

Установка пакета из пользовательского источника:

powershell_package 'xCertificate' do
  action :install
  source 'MyGallery'
end

Установка нескольких пакетов и указание версий пакетов:

powershell_package 'Install Multiple Packages' do
  action :install
  package_name %w(xCertificate xNetworking)
  version ['2.0.0.0', '2.12.0.0']
end

Установка нескольких пакетов, при этом версия пакета указывается для одного пакета, но не для другого:

powershell_package 'Install Multiple Packages' do
   action :install
   package_name %w(xCertificate xNetworking)
   version [nil, '2.12.0.0']
 end

В этом примере nil сообщает powershell_package установить последнюю доступную версию xCertificate, одновременно фиксируя xNetworking на версии 2.12.0.0.

Удаление пакета:

powershell_package 'xCertificate' do
  action :remove
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/powershell_package/

Spec-Zone.ru

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