apt
#######################################################################################################
:exclamation: УСТАРЕВШИЙ СТАТУС :exclamation:
Этот репозиторий и связанная с ним роль устарели в пользу Manala Ansible Collection
Информацию об их использовании можно найти в репозитории коллекции
#######################################################################################################
Ansible Роль: Apt
:exclamation: Сообщите о проблемах и отправьте Pull Requests в основной репозиторий Ansible Role :exclamation:
Эта роль добавляет сторонние источники в менеджер пакетов:
- Добавление URL источника как нового репозитория
- Добавление указанного ключа безопасности
- Управление файлами с предпочтениями пакетов (т.е. пиннинг)
- Установка пакетов
Она часть Manala Ansible stack, но может использоваться как отдельный компонент.
Требования
Нет.
Зависимости
Нет.
Установка
Ansible 2+
Используя ansible galaxy cli:
ansible-galaxy install manala.apt
Используя файл требований ansible galaxy:
- src: manala.apt
Обработчики роли
Нет
Переменные роли
Определение
Название | По умолчанию | Тип | Описание |
---|---|---|---|
manala_apt_configs_exclusive |
false | Boolean | Эксклюзивность конфигураций |
manala_apt_configs_dir |
'/etc/apt/apt.conf.d' | String | Путь к директории конфигураций |
manala_apt_configs_defaults |
{} | Array | Конфигурации по умолчанию |
manala_apt_configs |
[] | Array | Конфигурации |
manala_apt_install_packages |
~ | Array | Пакеты-зависимости для установки |
manala_apt_install_packages_default |
['apt-transport-https', 'openssl', 'ca-certificates'] | Array | Пакеты-зависимости по умолчанию |
manala_apt_components |
['main'] | Array | Коллекция компонентов |
manala_apt_sources_list_file |
'/etc/apt/sources.list' | String | Путь к файлу списка источников |
manala_apt_sources_list_template |
~ | String | Путь к шаблону списка источников |
manala_apt_sources_list |
~ | String/Array | Список источников |
manala_apt_repositories_exclusive |
false | Boolean | Эксклюзивность репозиториев |
manala_apt_repositories |
[] | Array | Репозитории |
manala_apt_preferences_exclusive |
false | Boolean | Эксклюзивность предпочтений |
manala_apt_preferences_dir |
'/etc/apt/preferences.d' | String | Путь к директории предпочтений |
manala_apt_preferences_defaults |
{} | Array | Предпочтения по умолчанию |
manala_apt_preferences |
[] | Array | Предпочтения |
manala_apt_holds_exclusive |
false | Array | Эксклюзивность удержаний |
manala_apt_holds |
[] | Array | Коллекция удержаний |
manala_apt_packages |
[] | Array | Коллекция пакетов |
manala_apt_cache_valid_time |
3600 | Integer | Допустимый срок жизни кэша apt, в секундах |
manala_apt.update |
false | Boolean | Обновить пакеты |
Пример
- hosts: all
vars:
manala_apt_repositories:
- contrib
manala_apt_preferences:
- git@backports
- dotdeb:100
- php@dotdeb_php56:300
- nginx@nginx
manala_apt_packages:
- xfonts-75dpi
- http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-{{ ansible_distribution_release }}-amd64.deb
roles:
- role: manala.apt
Конфигурации
manala_apt_configs
позволяет вам определять файлы конфигурации apt, используя шаблон и конфигурацию, или сырое содержимое.
Может быть указано состояние (present|absent|ignore).
manala_apt_configs:
# На основе шаблона (имя файла основано на шаблоне)
- template: configs/check_valid_until_false.j2
# На основе шаблона (принудительное имя файла)
- file: check
template: configs/check_valid_until_false.j2
# На основе содержания
- file: foo_content
config: |
APT::Install-Recommends "false";
# Конфигурация на основе массива словарей (устарело)
- file: foo
config:
- Acquire::Check-Valid-Until: true
# Убедитесь, что конфигурация отсутствует
- file: absent
state: absent # "present" по умолчанию
# Игнорировать конфигурацию
- file: ignore
state: ignore
# Уплощение конфигураций
- "{{ my_custom_configs_array }}"
manala_apt_configs_exclusive
позволяет очищать существующие файлы конфигураций apt в директории, определенной ключом manala_apt_configs_dir
. Это сделано для уверенности, что никакие старые или вручную созданные файлы не изменят текущую конфигурацию.
manala_apt_configs_exclusive: true
Компоненты
Укажите компоненты apt
manala_apt_components:
- main
- contrib
- non-free
# Уплощение компонентов
- "{{ my_custom_components_array }}"
Список источников
Используйте шаблон:
manala_apt_sources_list_template: my/sources.list.j2
manala_apt_sources_list:
foo: bar
Используйте сырое содержимое:
manala_apt_sources_list: |
deb http://deb.debian.org/debian {{ ansible_distribution_release }} main
deb http://security.debian.org/debian-security {{ ansible_distribution_release }}/updates main
deb http://deb.debian.org/debian {{ ansible_distribution_release }}-updates main
Используйте массив словарей (устарело):
manala_apt_sources_list:
- deb: http://deb.debian.org/debian {{ ansible_distribution_release }} main
- deb http://deb.debian.org/debian {{ ansible_distribution_release }} contrib
Репозитории
Краткий, на основе шаблона
manala_apt_repositories:
- security
- updates
- partner
- backports
- backports_sloppy
- dotdeb
- nginx
- bearstech
- nodesource_0_10
- nodesource_0_12
- nodesource_4
- nodesource_5
- nodesource_6
- nodesource_7
- nodesource_8
- nodesource_10
- nodesource_12
- nodesource_14
- nodesource_16
- postgresql
- maxscale_2_2
- mongodb_3_0
- mongodb_3_2
- mongodb_3_4
- mongodb_3_6
- mongodb_4_0
- mongodb_4_2
- varnish_4_0
- jenkins
- sensu
- rabbitmq
- proxmox
- proxmox_enterprise
- logentries
- galera_3
- grafana
- elasticsearch_1_7
- elasticsearch_2
- elasticsearch_5
- elasticsearch_6
- elasticsearch_7
- ppa_ansible
- blackfire
- sury_php
Подробный, на основе шаблона
manala_apt_repositories:
- pattern: backports
state: absent
Подробный
manala_apt_repositories:
- source: deb http://pkg.jenkins-ci.org/debian binary/
key:
url: http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key
id: D50582E6
- source: deb https://enterprise.proxmox.com/debian {{ ansible_distribution_release }} pve-enterprise
state: absent
# Игнорировать репозиторий
- source: deb https://example.com foo
state: ignore
# Уплощение репозиториев
- "{{ my_custom_repositories_array }}"
Эксклюзивность (все репозитории, не определенные ролью, будут удалены)
manala_apt_repositories_exclusive: true
Предпочтения
Краткий, на основе шаблона
Формат: [шаблон предпочтений]@[шаблон репозитория]:[приоритет пиннинга]
Обратите внимание, что упомянутые репозитории автоматически будут включены как присутствующие, используя процесс "manala_apt_repositories".
manala_apt_preferences:
- git@backports # "git*" из репозитория debian backports, высокий приоритет
- dotdeb:100 # "*" из репозитория dotdeb, низкий приоритет
- php@dotdeb # "php*" из репозитория dotdeb, высокий приоритет
- redis@dotdeb # "redis*" из репозитория dotdeb, высокий приоритет
- libssl1.0.0@backports # "libssl1.0.0" из репозитория debian backports, высокий приоритет (в этом случае "libssl1.0.0" не является заранее определенным шаблоном предпочтений; как следствие, пакет используется непосредственно)
# Синтаксис шаблона
- preference: ansible@ansible
file: foo
Подробный
manala_apt_preferences:
- package: '*'
pin: release o=Debian,a=stable
priority: 600
file: dotdeb
- package: 'php-*'
pin: release o=Debian,a=stable
priority: 900
file: php
state: absent
# Игнорировать предпочтение
- file: foo
state: ignore
# Уплощение предпочтений
- "{{ my_custom_preferences_array }}"
Удержания
Управляйте вашими удерживаемыми пакетами (теми, которые вы не хотите обновлять) с помощью:
manala_apt_holds:
- foo # Убедитесь, что пакет "foo" не будет обновлен
- package: bar # То же самое с пакетом "bar", используя подробный синтаксис
state: present
- package: baz # Убедитесь, что пакет "baz" *будет* обновлен
state: absent
# Игнорировать удержание
- package: qux
state: ignore
# Устарело
- package: quux
hold: true # или false :)
# Уплощение удержаний
- "{{ my_custom_holds_array }}"
Также предусмотрен режим эксклюзивности, чтобы гарантировать, что ВСЕ пакеты, кроме тех, которые вы установили, будут доступны для обновления.
manala_apt_holds_exclusive: true
Пакеты
Краткий
manala_apt_packages:
- vim # Название пакета
Подробный
manala_apt_packages:
- package: bzip2 # Название пакета, обязательно
state: absent # Состояние пакета, необязательно, по умолчанию "present"
force: true # Принудительная установка, необязательно
# Игнорировать пакет
- package: foo
state: ignore # Состояние пакета, необязательно, по умолчанию 'present'
# Уплощение пакетов
- "{{ my_custom_packages_array }}"
Флаги
Обновить пакеты
manala_apt:
update: true
# Может также быть установлено для всех ролей manala
manala:
update: true
Лицензия
MIT
Информация об авторе
Manala (http://www.manala.io/)
ansible-galaxy install manala/ansible-role-apt