package-source
cans.package-source
Простая роль для добавления и/или удаления источников дистрибутивных пакетов и их соответствующих GPG-ключей.
Каждый источник пакета, который необходимо добавить или удалить, должен быть описан следующим образом:
- repo: "название репозитория" # обязательно
codename: "<кодовое имя дистрибутива>" # необязательно, по умолчанию: не задано
key_id: "<ID GPG-ключа>" # необязательно, по умолчанию: не задано
key_server: "<url сервера ключей>" # необязательно, по умолчанию: не задано
key_url: "<url файла открытого ключа>"# необязательно, по умолчанию: не задано
keyring: "<путь к хранилищу ключей>" # необязательно, по умолчанию: не задано
update_cache: <да|нет> # необязательно, по умолчанию: нет
Эта роль сначала добавит, а затем удалит источники. Поскольку репозитории указаны в списках, порядок, в котором они добавляются или удаляются, определен и указан в вашем плейбуке.
Все значения с неопределенным по умолчанию просто будут пропущены, если не указаны.
repo
— это единственное обязательное значение и должно быть правильной строкой описания APT-репозитория.
Если вы хотите установить ключ вместе с данным источником, вам необходимо указать key_id
, чтобы избежать вставки нежелательного ключа в хранилище ключей APT. Затем одно из значений key_url
или key_server
становится обязательным, чтобы ключ можно было как-то получить.
Изменение значения по умолчанию для update_cache
обычно не является хорошей идеей, так как это значительно замедляет выполнение вашего плейбука. И в любом случае, если вы добавляете источники пакетов, скорее всего, вы будете использовать их вскоре после этого. Рекомендуется обновлять кеш в этом случае, а не тогда, когда вы добавляете источник. Обратите внимание, что это имеет недостаток в том, что у вас не будет валидации ваших новых репозиториев. Если вы все же хотите, чтобы эта валидация происходила во время выполнения этой роли, используйте update_cache
, как показано в
примерном плейбуке ниже.
Требования
Этот пакет требует модулей управления источниками дистрибуции Ansible:
- Для дистрибуций на базе Debian см. модули apt_repository и apt_key.
Переменные роли
Все переменные из этого модуля имеют префикс pkgsources
.
pkgsource_present
: список источников, которые вы хотите убедиться, что они доступны (по умолчанию:[]
);pkgsource_absent
: список источников, которые вы хотите убедиться, что они не доступны (по умолчанию:[]
);
Устаревшие переменные
pkgsource_user
: эта переменная устарела, так как вы можете определить это при импорте роли или на уровне плейбука. Эта переменная на самом деле не использовалась (по умолчанию:ansible_user_id
).
Зависимости
Эта роль не имеет внешних зависимостей.
Пример плейбука
В этом плейбуке мы добавим два новых источника в APT и удалим один. С вторым добавленным источником мы также установим GPG-ключ репозитория. Наконец, поскольку эта роль сначала добавляет, а затем удаляет репозитории, для последнего (и единственного) удаленного репозитория мы принудительно обновим кеш, чтобы убедиться, что конфигурация действительно действительна и APT может проверить все подписи репозиториев и пакетов.
- hosts: servers
roles:
- role: "cans.package-source"
pkgsource_present:
# Просто убедитесь, что репозиторий обратных пакетов для текущей версии Debian доступен
- repo: "deb http://ftp.fr.debian.org/debian/ stable-backports main"
# Репозиторий инструментов Heroku (cli tool)
- repo: "deb https://toolbelt.heroku.com/ubuntu/ ./"
# Эти две строки гарантируют, что GPG-ключ Heroku будет установлен *перед*
# добавлением репозитория в список источников.
key_id: C927EBE00F1B0520
key_url: "https://toolbelt.herokuapp.com/apt/release.key"
# Устаревшие источники, которые вы хотите удалить.
pkgsource_absent:
- "deb http://ftp.fr.debian.org/debian/ wheezy main"
# Принудительное обновление кеша для последнего добавленного или удаленного репозитория, чтобы новая
# конфигурация была проверена
update_cache: yes
Лицензия
Роль Ansible package-source является бесплатным программным обеспечением: вы можете распространять его и/или модифицировать на условиях версии 2 Общей публичной лицензии GNU, как опубликовано Фондом свободного программного обеспечения.
package-sources распространяется в надежде, что он будет полезен, но БЕЗ ЛЮБЫХ ГАРАНТИЙ; без даже подразумеваемых гарантий торговой пригодности или соответствия определенной цели. Смотрите Общую публичную лицензию GNU для получения дополнительных сведений.
Вы должны были получить копию Общей публичной лицензии GNU вместе с package-sources. Если нет, смотрите http://www.gnu.org/licenses/.
Информация об авторе
Авторские права © 2017-2018, Nicolas CANIART.
Role to manage Distribution Package Sources and their Encryption Keys
ansible-galaxy install cans/package-source