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/)

О проекте

Handle apt

Установить
ansible-galaxy install manala/ansible-role-apt
Лицензия
Unknown
Загрузки
70946
Владелец
Manala is an open source project supported by the french web agency ELAO providing advanced ansible roles for website's infrastructures and far more.