Spec-Zone.ru › Chef 18

Ресурс yum_repository

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

Все страницы ресурсов Infra


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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API