Ресурс zypper_repository
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл zypper_repository.rb и отправьте запрос на вытягивание в репозиторий Chef Infra Client.
Используйте ресурс zypper_repository для создания репозиториев пакетов Zypper в системах SUSE Enterprise Linux и openSUSE. Данный ресурс обеспечивает полную совместимость с ресурсом zypper_repository в существующем кулинарном руководстве zypper.
Новое в Chef Infra Client 13.3.
Синтаксис
Полный синтаксис всех доступных свойств для ресурса zypper_repository:
zypper_repository 'name' do
autorefresh true, false # default value: true
baseurl String
cookbook String # default value: "The cookbook containing the resource"
description String
enabled true, false # default value: true
gpgautoimportkeys true, false # default value: true
gpgcheck true, false # default value: true
gpgkey String, Array # default value: []
keeppackages true, false # default value: false
mirrorlist String
mode String, Integer # default value: "0644"
path String
priority Integer # default value: 99
refresh_cache true, false # default value: true
repo_name String # default value: 'name' unless specified
source String
type String # default value: "NONE"
action Symbol # defaults to :create if not specified
endгде:
-
zypper_repository— ресурс. -
name— имя блока ресурса. -
actionопределяет действия, которые Chef Infra Client предпримет для приведения узла к желаемому состоянию. -
autorefresh,baseurl,cookbook,description,enabled,gpgautoimportkeys,gpgcheck,gpgkey,keeppackages,mirrorlist,mode,path,priority,refresh_cache,repo_name,source, иtype— доступные свойства для данного ресурса.
Действия
Ресурс zypper_repository имеет следующие действия:
:create- Добавление нового репозитория Zypper. (по умолчанию)
:nothing- Блок ресурса не выполняет никаких действий, пока не будет вызван другим ресурсом. После получения вызова, этот блок либо выполняется немедленно, либо помещается в очередь для выполнения в конце выполнения Chef Infra Client.
:refresh- Обновление репозитория Zypper.
:remove- Удаление репозитория Zypper.
Свойства
Ресурс zypper_repository имеет следующие свойства:
-
autorefresh - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, следует ли автоматически обновлять репозиторий.
-
baseurl - Тип Ruby: Строка
Базовый URL репозитория Zypper, например,
http://download.opensuse.org.
-
cookbook - Тип Ruby: Строка | Значение по умолчанию:
The cookbook containing the resourceКулинарное руководство, из которого берётся шаблон файла репозитория. Необходимо только если используется настраиваемый шаблон для файла репозитория.
-
description - Тип Ruby: Строка
Описание репозитория, которое будет отображаться командой
zypper repos.
-
enabled - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, следует ли включить репозиторий.
-
gpgautoimportkeys - Тип Ruby: true, false | Значение по умолчанию:
trueАвтоматически импортировать указанный ключ при настройке репозитория.
-
gpgcheck - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, следует ли проверять подпись GPG репозитория.
-
gpgkey - Тип Ruby: Строка, Массив | Значение по умолчанию:
[]Расположение ключа(ей) репозитория для импорта.
-
keeppackages - Тип Ruby: true, false | Значение по умолчанию:
falseОпределяет, следует ли сохранять пакеты.
-
mirrorlist - Тип Ruby: Строка
URL списка зеркал, который будет использоваться.
-
mode - Тип Ruby: Строка, Целое число | Значение по умолчанию:
0644Режим файла репозитория.
-
path - Тип Ruby: Строка
Относительный путь к базе URL репозитория.
-
priority - Тип Ruby: Целое число | Значение по умолчанию:
99Определяет приоритет репозитория Zypper.
-
refresh_cache - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, следует ли обновлять кэш пакетов.
-
repo_name - Тип Ruby: Строка | Значение по умолчанию:
The resource block's nameНеобязательное свойство для установки имени репозитория, если оно отличается от имени блока ресурса.
-
source - Тип Ruby: Строка
Имя шаблона для файла репозитория. Необходимо только если используется настраиваемый шаблон для файла репозитория.
-
type - Тип Ruby: Строка | Значение по умолчанию:
NONEУказывает тип репозитория.
Общие функциональные возможности ресурсов
Ресурсы 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[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.
Примеры
В следующих примерах демонстрируются различные подходы к использованию ресурса zypper_repository в рецептах:
Добавить репозиторий Apache в openSUSE Leap 15:
zypper_repository 'apache' do
baseurl 'http://download.opensuse.org/repositories/Apache'
path '/openSUSE_Leap_15.2'
type 'rpm-md'
priority '100'
end
Удалить репозиторий с именем ‘apache’:
zypper_repository 'apache' do
action :delete
end
Обновить репозиторий с именем ‘apache’:
zypper_repository 'apache' do
action :refresh
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/zypper_repository/