manala.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.apt
Лицензия
Unknown
Загрузки
73k
Владелец
Manala is an open source project supported by the french web agency ELAO providing advanced ansible roles for website's infrastructures and far more.