Ресурс powershell_package_source
Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл powershell_package_source.rb и отправьте запрос на добавление в репозиторий Chef.
Используйте ресурс powershell_package_source для регистрации репозитория пакетов PowerShell.
Новинка в Chef Infra Client 14.3.
Синтаксис
Полный синтаксис всех свойств ресурса powershell_package_source:
powershell_package_source 'name' do
provider_name String # default value: "NuGet"
publish_location String
script_publish_location String
script_source_location String
source_name String # default value: 'name' unless specified
trusted true, false # default value: false
url String
action Symbol # defaults to :register if not specified
endгде:
-
powershell_package_source— это ресурс. -
name— имя блока ресурса. -
actionопределяет действия, которые Chef Infra Client предпримет для приведения узла в нужное состояние. -
provider_name,publish_location,script_publish_location,script_source_location,source_name,trusted, иurl— это доступные свойства данного ресурса.
Действия
Ресурс powershell_package_source имеет следующие действия:
:nothing- Этот блок ресурса не выполняет действий, пока не получит уведомление от другого ресурса. После получения уведомления, этот блок ресурса либо выполняется немедленно, либо помещается в очередь для выполнения в конце работы Chef Infra Client.
:register- По умолчанию. Регистрирует и обновляет источник пакетов PowerShell.
:unregister- Удаляет источник пакетов PowerShell.
Свойства
Ресурс powershell_package_source имеет следующие свойства:
provider_name-
Тип Ruby: String | Значение по умолчанию:
NuGetДопустимые значения:"NuGet", "PowerShellGet", "Programs", "chocolatey", "msi", "msu", "psl"Провайдер управления пакетами для источника.
publish_location-
Тип Ruby: String
URL, куда будут публиковаться модули для данного источника. Действителен только если провайдер —
PowerShellGet.
script_publish_location-
Тип Ruby: String
Расположение, куда будут публиковаться скрипты для этого источника. Действителен только если провайдер —
PowerShellGet.
script_source_location-
Тип Ruby: String
URL, где расположены скрипты для данного источника. Действителен только если провайдер —
PowerShellGet.
source_name-
Тип Ruby: String | Значение по умолчанию:
The resource block's nameИмя источника пакетов.
trusted-
Тип Ruby: true, false | Значение по умолчанию:
falseДоверять ли пакетам из этого источника.
url-
Тип Ruby: String |
REQUIREDURL источника пакетов.
Общие функциональные возможности ресурсов
Ресурсы 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.
Примеры
Данный ресурс не имеет примеров.
© 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_source/