Ресурс yum_repository
Эта страница сгенерирована из исходного кода Chef. Чтобы предложить изменение, отредактируйте файл yum_repository.rb и отправьте запрос на включение изменений в репозиторий Chef.
Страница справочника по ресурсам
Используйте ресурс 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
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,repositoryid,skip_if_unavailable,source,sslcacert,sslclientcert,sslclientkey,sslverify,throttle,timeout, иusername— это свойства, доступные для этого ресурса.
Действия
Ресурс yum_repository имеет следующие действия:
:create- Создать репозиторий на основе свойств.
:makecache- Принудительно создать кэш репозитория. Это также происходит автоматически при обновлении репозитория.
:nothing- Этот блок ресурса не выполняет никаких действий, если не получит уведомление от другого ресурса о необходимости выполнить действие. После получения уведомления этот блок ресурса либо запускается немедленно, либо помещается в очередь для запуска в конце выполнения Chef Infra Client.
:remove- Удалить репозиторий.
Свойства
Ресурс yum_repository имеет следующие свойства:
baseurl-
Тип Ruby: String, Array
URL каталога, в котором находится каталог
repodataрепозитория Yum. Может бытьhttp://,https://илиftp://URL. Вы можете указать несколько URL-адресов в одном оператореbaseurl.
clean_metadata-
Тип Ruby: true, false | Значение по умолчанию:
trueУказывает, следует ли очищать все пакеты, загруженные из репозитория Yum и хранящиеся в кэш-каталоге.
cost-
Тип Ruby: String
Относительная стоимость доступа к этому репозиторию. Полезно для взвешивания пакетов одного репозитория как больших/меньших, чем другие.
description-
Тип Ruby: String | Значение по умолчанию:
Yum RepositoryОписание имени канала репозитория и соответствует параметру «name» в файле конфигурации репозитория.
enabled-
Тип Ruby: true, false | Значение по умолчанию:
trueУказывает, следует ли Yum использовать этот репозиторий.
enablegroups-
Тип Ruby: true, false
Указывает, разрешит ли Yum использование групп пакетов для этого репозитория.
exclude-
Тип Ruby: String
Список пакетов, которые следует исключить из обновлений или установок. Это должен быть список, разделенный пробелами. Разрешены оболочки с использованием подстановочных знаков (например, * и ?).
failovermethod-
Тип Ruby: StringДопустимые значения:
"priority", "roundrobin"Метод определения способа переключения на новый сервер в случае сбоя текущего, который может быть
roundrobinилиpriority.roundrobinслучайным образом выбирает URL из списка URL-адресов для начала и проходит по каждому из них по мере возникновения ошибки при подключении к хосту.priorityначинается с первого указанногоbaseurlи последовательно прочитывает их.
fastestmirror_enabled-
Тип Ruby: true, false
Указывает, следует ли использовать самое быстрое зеркало из конфигурации репозитория, если в этой конфигурации указано более одного зеркала.
gpgcheck-
Тип Ruby: true, false | Значение по умолчанию:
trueУказывает, следует ли Yum выполнять проверку подписи GPG для пакетов, полученных из репозитория.
gpgkey-
Тип Ruby: String, Array
URL, указывающий на файл ключа GPG с броней ASCII для репозитория. Он используется, если Yum нуждается в открытом ключе для проверки пакета, а необходимый ключ не был импортирован в базу данных RPM. Если этот параметр установлен, Yum автоматически импортирует ключ из указанного URL. Может быть указано несколько URL-адресов аналогично параметру baseurl. Если для установки пакета из репозитория требуется ключ GPG, будут установлены все ключи, указанные для этого репозитория. Может быть указано несколько URL-адресов аналогично параметру baseurl. Если для установки пакета из репозитория требуется ключ GPG, будут установлены все ключи, указанные для этого репозитория.
http_caching-
Тип Ruby: StringДопустимые значения:
"all", "none", "packages"Определяет, как прокси-серверы HTTP должны обрабатывать загрузки HTTP, выполняемые Yum. Этот параметр может принимать следующие значения:
-
allозначает, что все загрузки HTTP должны кэшироваться -
packagesозначает, что должны кэшироваться только загрузки пакетов RPM, но не загрузки метаданных репозитория -
noneозначает, что загрузки HTTP не должны кэшироваться.
Рекомендуется значение по умолчанию
all, если у вас нет проблем, связанных с кэшированием. -
include_config-
Тип Ruby: String
Внешний файл конфигурации в формате
url://to/some/location.
includepkgs-
Тип Ruby: String
Обратное свойство exclude. Это список пакетов, которые вы хотите использовать из репозитория. Если этот параметр указывает только один пакет, то это все, что Yum будет видеть из репозитория.
keepalive-
Тип Ruby: true, false
Определяет, следует ли использовать HTTP/1.1
keep-aliveс этим репозиторием.
make_cache-
Тип Ruby: true, false | Значение по умолчанию:
trueОпределяет, остаются ли файлы пакетов, загруженные Yum, в кэш-каталогах. Используя кэшированные данные, вы можете выполнять определенные операции без подключения к сети.
max_retries-
Тип Ruby: String, Integer
Количество попыток извлечения файла перед возвратом ошибки. Установка этого значения в
0заставляет Yum пытаться бесконечно.
metadata_expire-
Тип Ruby: String
Время (в секундах), по истечении которого метаданные устареют. Если текущие загруженные метаданные меньше указанного значения, то Yum не будет обновлять метаданные репозитория. Если вы обнаружите, что Yum не загружает информацию об обновлениях так часто, как вам хотелось бы, уменьшите значение этого параметра. Вы также можете изменить значение по умолчанию, используя секунды, на дни, часы или минуты, добавив
d,hилиmсоответственно. Значение по умолчанию — шесть часов, что соответствует запуску yum-updates один раз в час. Также можно использовать словоnever, что означает, что метаданные никогда не устареют. Примечание: при использовании файла metalink файл metalink всегда должен быть новее, чем метаданные для репозитория из-за проверки, поэтому это ограничение по времени также применяется к файлу metalink.Примечание
При использовании файла metalink файл metalink всегда должен быть новее, чем метаданные для репозитория из-за проверки, поэтому это ограничение по времени также применяется к файлу metalink.
metalink-
Тип Ruby: String
Указывает URL на файл metalink для repomd.xml, список зеркал для всего репозитория создается путем преобразования зеркал для файла repomd.xml в baseurl.
mirror_expire-
Тип Ruby: String
Время (в секундах), по истечении которого локально кэшированный список зеркал устареет. Если текущий список зеркал моложе этого времени, то Yum не будет загружать другую копию списка зеркал, он имеет тот же дополнительный формат, что и metadata_expire. Если вы обнаружите, что Yum не загружает списки зеркал так часто, как вам хотелось бы, уменьшите значение этого параметра. Вы также можете изменить значение по умолчанию, используя секунды, на дни, часы или минуты, добавив
d,hилиmсоответственно.
mirrorlist-
Тип Ruby: String
URL файла, содержащего список baseurl. Это может использоваться вместо или вместе с параметром baseurl. Переменные подстановки, описанные ниже, могут использоваться с этим параметром.
mirrorlist_expire-
Тип Ruby: Строка
Указывает время (в секундах), по истечении которого локально кэшированный список зеркал истечёт. Если текущий список зеркал меньше указанного значения, Yum не загрузит другую копию списка зеркал. Вы также можете изменить значение по умолчанию, используя дни, часы или минуты, добавив соответственно `дни`, `часы` или `минуты`.
mode-
Тип Ruby: Строка, Целое число | Значение по умолчанию:
"0644"Режим разрешений файла .repo на диске. Это полезно для сценариев, где секреты находятся в файле репозитория. Если это значение установлено в `0755`, обычные пользователи не смогут использовать Yum search, Yum info и т. д.
options-
Тип Ruby: Хэш
Указывает параметры репозитория.
password-
Тип Ruby: Строка
Пароль, используемый с именем пользователя для аутентификации по протоколу Basic.
priority-
Тип Ruby: Строка
Назначает приоритет репозиторию, где значение приоритета находится в диапазоне от `1` до `100` включительно. Приоритеты используются для обеспечения упорядоченной защиты репозиториев. Пакеты из репозиториев с более низким приоритетом (более высокое числовое значение) никогда не будут использоваться для обновления пакетов, установленных из репозитория с более высоким приоритетом (меньшее числовое значение). Репозитории с наименьшим числовым приоритетом имеют наивысший приоритет.
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 и репозиториев.
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: Строка
Имя пользователя для аутентификации по протоколу Basic в репозитории.
Общие возможности ресурсов
Ресурсы Chef включают общие свойства, уведомления и защитные механизмы ресурсов.
Общие свойства
Следующие свойства являются общими для всех ресурсов:
compile_time-
Тип Ruby: true, false | Значение по умолчанию:
falseУправляет фазой, в которой ресурс выполняется на узле. Установите в значение true, чтобы запустить его при построении коллекции ресурсов. Установите в значение false, чтобы запустить его при конфигурировании узла Chef Infra Client.
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[Строка]'
Ресурс может уведомлять другой ресурс о выполнении действий при изменении его состояния. Укажите ресурс, действие, которое должен выполнить уведомляемый ресурс, и параметры для этого действия. Один ресурс может уведомлять несколько ресурсов; используйте инструкцию `нотификация` для каждого ресурса, который должен быть уведомлен.
Если указанный ресурс не существует, возникает ошибка. В отличие от `ожидание`, который не завершится ошибкой, если исходный ресурс не найден.
Таймер указывает момент во время выполнения Chef Infra Client, когда запускается уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие с уведомленным ресурсом должно быть выполнено до обработки блока ресурсов, в котором расположено уведомление.
:delayedПо умолчанию. Указывает, что уведомление должно быть помещено в очередь и затем выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.
Синтаксис для `уведомления`:
notifies :action, 'resource[name]', :timer
subscribesТип Ruby: Символ, 'Chef::Resource[Строка]'
Ресурс может следить за другим ресурсом и выполнять действия, если состояние отслеживаемого ресурса изменится. Укажите ресурс, действие и параметры для этого действия.
Обратите внимание, что `отслеживание` не применяет указанное действие к ресурсу, за которым он следит; например:
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
В этом случае свойство `перезапуск` перезагружает службу `httpd` всякий раз, когда обновляется файл сертификата, расположенный по адресу `/etc/httpd/conf.d/ssl.conf`. `отслеживание` не вносит никаких изменений в сам файл сертификата, а только следит за изменением файла и выполняет действие `перезапуск` для своего ресурса (в этом примере `файл`), когда изменения обнаружены.
Если другой ресурс не существует, подписка не вызовет ошибку. В отличие от более строгих семантик `зависимость`, которые вызовут ошибку, если другой ресурс не существует.
Таймер указывает момент во время выполнения Chef Infra Client, когда запускается уведомление. Доступны следующие таймеры:
:beforeУказывает, что действие с уведомленным ресурсом должно быть выполнено до обработки блока ресурсов, в котором расположено уведомление.
:delayedПо умолчанию. Указывает, что уведомление должно быть помещено в очередь и затем выполнено в конце выполнения Chef Infra Client.
-
:immediate,:immediately Указывает, что уведомление должно быть выполнено немедленно для каждого уведомленного ресурса.
Синтаксис для `отслеживание`:
subscribes :action, 'resource[name]', :timer
Защитные механизмы
Свойство защитного механизма может использоваться для оценки состояния узла во время фазы выполнения Chef Infra Client. Основываясь на результатах этой оценки, защитное свойство сообщает Chef Infra Client, следует ли ему продолжать выполнение ресурса. Свойство защитного механизма принимает либо строковое значение, либо значение блока Ruby:
- Строка выполняется как командная строка. Если команда возвращает `true`, защитный механизм применяется. Если команда возвращает любое другое значение, то свойство защитного механизма не применяется. Строковые защитные механизмы в `powershell_script` выполняют команды Windows PowerShell и могут возвращать `$true` помимо `true`.
- Блок выполняется как код Ruby, который должен вернуть либо `true` или `false`. Если блок возвращает `true`, свойство защитного механизма применяется. Если блок возвращает `false`, свойство защитного механизма не применяется.
Свойство защитного механизма полезно для обеспечения идемпотентности ресурса, позволяя ресурсу проверять желаемое состояние по мере его выполнения, а затем, если желаемое состояние присутствует, ничего не делать Chef Infra Client.
СвойстваСледующие свойства могут быть использованы для определения защитного механизма, который оценивается во время фазы выполнения Chef Infra Client:
not_ifЗапретить выполнение ресурса, когда условие возвращает `false`.
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/