Spec-Zone.ru › Chef 16

Ресурс powershell_package

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

Страница справки по ресурсам


Используйте ресурс 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 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.

Примеры


Следующие примеры демонстрируют различные подходы к использованию ресурса 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
Ресурс powershell_package
  • Синтаксис
  • Действия
  • Свойства
  • Общие функции ресурса
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

© 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