Ресурс yum_repository
Эта страница сгенерирована из исходного кода Chef Infra Client. Чтобы предложить изменение, отредактируйте файл yum_repository.rb и отправьте запрос на добавление в репозиторий Chef Infra Client.
Используйте ресурс yum_repository для управления файлом конфигурации Yum-репозитория, расположенным по адресу /etc/yum.repos.d/repositoryid.repo на локальной машине. Этот файл конфигурации определяет, какие репозитории использовать, как обрабатывать кэшированные данные и т.д.
Новое в Chef Infra Client 12.14.
Синтаксис
Полный синтаксис всех свойств, доступных для ресурса yum_repository:
yum_repository 'name' do
baseurl String, Array
clean_metadata true, false # default value: true
cost String
description String # default value: "Yum Repository"
enabled true, false # default value: true
enablegroups true, false
exclude String
failovermethod String
fastestmirror_enabled true, false
gpgcheck true, false # default value: true
gpgkey String, Array
http_caching String
include_config String
includepkgs String
keepalive true, false
make_cache true, false # default value: true
max_retries String, Integer
metadata_expire String
metalink String
mirror_expire String
mirrorlist String
mirrorlist_expire String
mode String, Integer # default value: "0644"
options Hash
password String
priority String
proxy String
proxy_password String
proxy_username String
repo_gpgcheck true, false
report_instanceid true, false
reposdir String # default value: "/etc/yum.repos.d/"
repositoryid String # default value: 'name' unless specified
skip_if_unavailable true, false
source String
sslcacert String
sslclientcert String
sslclientkey String
sslverify true, false
throttle String, Integer
timeout String
username String
action Symbol # defaults to :create if not specified
endгде:
-
yum_repository— это ресурс. -
name— имя блока ресурса. -
actionопределяет, какие действия Chef Infra Client выполнит для приведения узла в нужное состояние. -
baseurl,clean_metadata,cost,description,enabled,enablegroups,exclude,failovermethod,fastestmirror_enabled,gpgcheck,gpgkey,http_caching,include_config,includepkgs,keepalive,make_cache,max_retries,metadata_expire,metalink,mirror_expire,mirrorlist,mirrorlist_expire,mode,options,password,priority,proxy,proxy_password,proxy_username,repo_gpgcheck,report_instanceid,reposdir,repositoryid,skip_if_unavailable,source,sslcacert,sslclientcert,sslclientkey,sslverify,throttle,timeout, иusername— доступные свойства этого ресурса.
Действия
Ресурс yum_repository имеет следующие действия:
:create- Создать репозиторий на основе свойств. (по умолчанию)
:delete- Удалить репозиторий.
:makecache- Принудительно создать кэш репозитория. Это также делается автоматически при обновлении репозитория.
:nothing- Этот блок ресурса не действует, пока другой ресурс не уведомит его о необходимости выполнить действие. После получения уведомления этот блок ресурса либо выполняется немедленно, либо ставится в очередь для выполнения в конце выполнения Chef Infra Client.
Свойства
Ресурс yum_repository имеет следующие свойства:
-
baseurl - Тип Ruby: Строка, массив
URL каталога, где хранится каталог репозитория Yum. Может быть URL
http://,https://илиftp://. Вы можете указать несколько URL в одном оператореbaseurl.
-
clean_metadata - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, хотите ли вы очистить все загруженные пакеты из репозитория Yum и хранящиеся в каталоге кэша.
-
cost - Тип Ruby: Строка
Относительная стоимость доступа к этому репозиторию. Полезно для взвешивания пакетов одного репозитория как больших/меньших, чем любые другие.
-
description - Тип Ruby: Строка | Значение по умолчанию:
Yum RepositoryОписание канала репозитория, сопоставляемое с параметром «name» в файле конфигурации репозитория .conf.
-
enabled - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, должен ли Yum использовать этот репозиторий.
-
enablegroups - Тип Ruby: true, false
Указывает, разрешит ли Yum использование пакетов групп для этого репозитория.
-
exclude - Тип Ruby: Строка
Список пакетов, которые следует исключить из обновлений или установок. Это должен быть список, разделенный пробелами. Разрешены оболочки командного интерпретатора с использованием символов подстановки (например, * и ?).
-
failovermethod - Тип Ruby: Строка Допустимые значения:
"priority", "roundrobin"Метод определения способа переключения на новый сервер в случае сбоя текущего. Может быть
roundrobinилиpriority.roundrobinслучайным образом выбирает URL из списка URL для начала и обрабатывает каждый из них по мере возникновения ошибки связи с хостом.priorityначинается с первогоbaseurlиз перечисленных и последовательно их просматривает.
-
fastestmirror_enabled - Тип Ruby: true, false
Указывает, использовать ли самую быструю зеркальную копию из конфигурации репозитория, когда в этой конфигурации перечислено более одной зеркальной копии.
-
gpgcheck - Тип Ruby: true, false | Значение по умолчанию:
trueУказывает, должен ли Yum выполнять проверку подписи GPG на пакетах, полученных из репозитория.
-
gpgkey - Тип Ruby: Строка, массив
URL, указывающий на файл ключа GPG в ASCII-armored формате для репозитория. Используется, если Yum нуждается в открытом ключе для проверки пакета, а необходимый ключ не был импортирован в базу данных RPM. Если этот параметр установлен, Yum автоматически импортирует ключ из указанного URL. Можно указать несколько URL так же, как и в параметре baseurl. Если для установки пакета из репозитория требуется ключ GPG, все ключи, указанные для данного репозитория, будут установлены. Можно указать несколько URL так же, как и в параметре baseurl. Если для установки пакета из репозитория требуется ключ GPG, все ключи, указанные для данного репозитория, будут установлены.
-
http_caching - Тип Ruby: Строка Допустимые значения:
"all", "none", "packages"Определяет, как Yum обрабатывает загрузки HTTP для кэшей HTTP. Этот параметр может принимать следующие значения:
-
allозначает, что все загрузки HTTP должны кэшироваться -
packagesозначает, что кэшироваться должны только загрузки пакетов RPM, но не загрузки метаданных репозитория -
noneозначает, что никакие загрузки HTTP не должны кэшироваться.
Рекомендуется использовать значение по умолчанию
all, если не наблюдаются проблемы с кэшированием. -
-
include_config - Тип Ruby: Строка
Внешний файл конфигурации в формате
url://to/some/location.
-
includepkgs - Тип Ruby: Строка
Обратный параметр к свойству exclude. Это список пакетов, которые вы хотите использовать из репозитория. Если этот параметр содержит только один пакет, то Yum будет видеть только его из репозитория.
-
keepalive - Тип Ruby: true, false
Определяет, должен ли использоваться HTTP/1.1
keep-aliveс этим репозиторием.
-
make_cache - Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, сохраняются ли загруженные Yum файлы пакетов в каталогах кэша. Используя кэшированные данные, вы можете выполнять определенные операции без подключения к сети.
-
max_retries - Тип Ruby: Строка, целое число
Число попыток повторного получения файла перед возвратом ошибки. Установка значения
0заставляет Yum пытаться бесконечно.
-
metadata_expire - Тип Ruby: Строка
Время (в секундах), после которого метаданные устареют. Если загруженные метаданные меньше указанного значения, Yum не обновит метаданные репозитория. Если вы заметили, что Yum не загружает информацию об обновлениях так часто, как вам хотелось бы, уменьшите значение этого параметра. Вы также можете изменить значение по умолчанию с секунд на дни, часы или минуты, добавив
d,hилиmсоответственно. Значение по умолчанию составляет шесть часов, дополняя выполнение yum-updates один раз в час. Также можно использовать словоnever, что означает, что метаданные никогда не устареют.Примечание
При использовании файла metalink, metalink всегда должен быть новее метаданных репозитория из-за валидации, поэтому этот таймаут также относится к файлу metalink.
-
metalink - Тип Ruby: Строка
Указывает URL файла metalink для repomd.xml, из которого генерируется список зеркал для всего репозитория, преобразуя зеркала файла repomd.xml в baseurl.
-
mirror_expire - Тип Ruby: Строка
Время (в секундах), после которого кэшированный локально список зеркал устареет. Если текущий список зеркал имеет возраст меньше этого значения, Yum не загрузит другую копию списка зеркал. У него тот же дополнительный формат, что и metadata_expire. Если вы заметили, что Yum не загружает списки зеркал так часто, как вам хотелось бы, уменьшите значение этого параметра. Также можно изменить значение по умолчанию с секунд на дни, часы или минуты, добавив
d,hилиmсоответственно.
-
mirrorlist - Тип Ruby: Строка
URL файла, содержащего список baseurl. Его можно использовать вместо или вместе с параметром baseurl. С этим параметром можно использовать переменные подстановки, описанные ниже.
-
mirrorlist_expire - Тип Ruby: Строка
Указывает время (в секундах), по истечении которого кэшированный локально список зеркал истекает. Если текущий список зеркал меньше указанного значения, Yum не загрузит другую копию списка зеркал. Вы также можете изменить значение по умолчанию, используя дни, часы или минуты, добавив соответственно
d,hилиm.
-
mode - Тип Ruby: Строка, Целое число | Значение по умолчанию:
0644Режим разрешений файла .repo на диске. Это полезно для сценариев, где секреты находятся в файле репозитория. Если это значение установлено в
600, обычные пользователи не смогут использовать Yum search, Yum info и т.д.
-
options - Тип Ruby: Словарь
Указывает параметры репозитория.
-
password - Тип Ruby: Строка
Пароль для использования с именем пользователя для аутентификации по принципу «пользователь-пароль».
-
priority - Тип Ruby: Строка
Назначает приоритет репозиторию, где значение приоритета находится в диапазоне от
1до99включительно. Приоритеты используются для обеспечения упорядоченной защиты репозиториев. Пакеты из репозиториев с более низким приоритетом (большим числовым значением) никогда не будут использоваться для обновления пакетов, установленных из репозитория с более высоким приоритетом (меньшим числовым значением). Репозитории с наименьшим числовым значением приоритета имеют наивысший приоритет.
-
proxy - Тип Ruby: Строка
URL прокси-сервера, который должен использоваться Yum.
-
proxy_password - Тип Ruby: Строка
Пароль для данного прокси.
-
proxy_username - Тип Ruby: Строка
Имя пользователя для использования с прокси.
-
repo_gpgcheck - Тип Ruby: true, false
Определяет, будет ли Yum выполнять проверку подписи GPG на repodata из данного репозитория.
-
report_instanceid - Тип Ruby: true, false
Определяет, следует ли сообщать идентификатор экземпляра при использовании Amazon Linux AMIs и репозиториев.
-
reposdir - Тип Ruby: Строка | Значение по умолчанию:
/etc/yum.repos.d/Директория, в которой должны храниться файлы репозитория Yum.
Новое в Chef Infra Client 16.9
-
repositoryid - Тип Ruby: Строка | Значение по умолчанию:
The resource block's nameНеобязательное свойство для установки имени репозитория, если оно отличается от имени блока ресурса.
-
skip_if_unavailable - Тип Ruby: true, false
Разрешить Yum продолжить, если по какой-либо причине к данному репозиторию невозможно подключиться.
-
source - Тип Ruby: Строка
Использовать пользовательский источник шаблона вместо стандартного.
-
sslcacert - Тип Ruby: Строка
Путь к каталогу, содержащему базы данных центров сертификации, которые Yum должен использовать для проверки SSL-сертификатов.
-
sslclientcert - Тип Ruby: Строка
Путь к SSL-клиентскому сертификату, который Yum должен использовать для подключения к репозиториям/удаленным сайтам.
-
sslclientkey - Тип Ruby: Строка
Путь к SSL-клиентскому ключу, который Yum должен использовать для подключения к репозиториям/удаленным сайтам.
-
sslverify - Тип Ruby: true, false
Определяет, будет ли Yum проверять SSL-сертификаты/хосты.
-
throttle - Тип Ruby: Строка, Целое число
Включить ограничение пропускной способности для загрузок.
-
timeout - Тип Ruby: Строка
Количество секунд, которые нужно ждать подключения, прежде чем истечь время ожидания. По умолчанию 30 секунд. Это может быть слишком коротким временем для сильно перегруженных сайтов.
-
username - Тип 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]', :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.
Примеры
Следующие примеры демонстрируют различные подходы к использованию ресурса yum_repository в рецептах:
Добавить внутренний корпоративный репозиторий:
yum_repository 'OurCo' do
description 'OurCo yum repository'
mirrorlist 'http://artifacts.ourco.org/mirrorlist?repo=ourco-8&arch=$basearch'
gpgkey 'http://artifacts.ourco.org/pub/yum/RPM-GPG-KEY-OURCO-8'
action :create
end
Удалить репозиторий:
yum_repository 'CentOS-Media' do
action :delete
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/yum_repository/