Spec-Zone.ru › Chef 16

Ресурс 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
Ресурс yum_repository
  • Синтаксис
  • Действия
  • Свойства
  • Общие функциональные возможности ресурса
    • Общие свойства
    • Уведомления
    • Защиты
  • Примеры

© 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