aptitude
aptitude
Роль Ansible, используемая как оболочка для apt <https://wiki.debian.org/Apt>
_, для управления пакетами.
Полная документация на Readthedocs <https://aptitude.readthedocs.io>
_.
Исходный код на:
Github <https://github.com/constrict0r/aptitude>
_.
Gitlab <https://gitlab.com/constrict0r/aptitude>
_.
Часть: <https://gitlab.com/explore/projects?tag=doombot>
_
Ингредиенты
Содержимое
Описание <#Description>
_Использование <#Usage>
_Переменные <#Variables>
_пакеты <#packages>
_пакеты_удаление <#packages-purge>
_конфигурация <#configuration>
_
YAML <#YAML>
_Атрибуты <#Attributes>
_item_expand <#item-expand>
_item_path <#item-path>
_
Требования <#Requirements>
_Совместимость <#Compatibility>
_Лицензия <#License>
_Ссылки <#Links>
_UML <#UML>
_Развертывание <#deployment>
_Основное <#main>
_
Автор <#Author>
_
Описание
Роль Ansible, используемая как оболочка для apt для управления пакетами.
Эта роль выполняет следующие действия:
Проверяет, установлены ли все необходимые компоненты.
Убедитесь, что текущий пользователь может получить административные права.
Обновляет кэш apt.
Если задана переменная пакеты_удаление, удаляет указанные в ней пакеты.
Если задана переменная конфигурация, удаляет пакеты из пакеты_удаление.
Если задана переменная пакеты, устанавливает указанные в ней пакеты.
Если задана переменная конфигурация, устанавливает пакеты, указанные в ней.
Использование
Для установки и выполнения:
::
ansible-galaxy install constrict0r.aptitude ansible localhost -m include_role -a name=constrict0r.aptitude -K
Передача переменных:
::
ansible localhost -m include_role -a name=constrict0r.aptitude -K \ -e "{packages: [gedit, rolldice]}"
Чтобы включить роль в плейбук:
::
- hosts: servers roles: - {role: constrict0r.aptitude}
Чтобы включить роль как зависимость в другую роль:
::
dependencies: - role: constrict0r.aptitude packages: [gedit, rolldice]
Чтобы использовать роль из задач:
::
- name: Выполнить задачу роли. import_role: name: constrict0r.aptitude vars: packages: [gedit, rolldice]
Чтобы выполнить тесты:
::
cd aptitude chmod +x testme.sh ./testme.sh
В некоторых тестах может потребоваться использовать sudo для успешного выполнения.
Переменные
Поддерживаемые переменные:
пакеты
Список пакетов для установки через apt.
Этот список можно изменить, передав массив пакеты при включении роли в плейбук или через –extra-vars из терминала.
Эта переменная по умолчанию пуста.
::
Включение из терминала.
ansible localhost -m include_role -a name=constrict0r.aptitude -K -e
"{packages: [gedit, rolldice]}"
Включение в плейбук.
- hosts: servers
roles:
- role: constrict0r.aptitude
packages:
- gedit
- rolldice
- role: constrict0r.aptitude
packages:
Для плейбука из терминала.
ansible-playbook -i inventory my-playbook.yml -K -e
"{packages: [gedit, rolldice]}"
пакеты_удаление
Список пакетов для удаления с помощью apt.
Этот список можно изменить, передав массив пакеты_удаление при включении роли в плейбук или через –extra-vars из терминала.
Эта переменная по умолчанию пуста.
::
Включение из терминала.
ansible localhost -m include_role -a name=constrict0r.aptitude -K -e
"{packages_purge: [gedit, rolldice]}"
Включение в плейбук.
- hosts: servers
roles:
- role: constrict0r.aptitude
packages_purge:
- gedit
- rolldice
- role: constrict0r.aptitude
packages_purge:
Для плейбука из терминала.
ansible-playbook -i inventory my-playbook.yml -K -e
"{packages_purge: [gedit, rolldice]}"
конфигурация
Абсолютный путь к файлу или URL к .yml файлу, который содержит все или некоторые из переменных, поддерживаемых этой ролью.
Рекомендуется использовать расширение .yml или .yaml для файла конфигурация.
Эта переменная по умолчанию пуста.
::
Использование пути к файлу.
ansible localhost -m include_role -a name=constrict0r.aptitude -K -e
"configuration=/home/username/my-config.yml"
Использование URL.
ansible localhost -m include_role -a name=constrict0r.aptitude -K -e
"configuration=https://my-url/my-config.yml"
Чтобы узнать, как написать файл конфигурации, смотрите раздел YAML.
YAML
При передаче файлов конфигурации в эту роль в качестве параметров рекомендуется добавлять расширение .yml или .yaml к каждому файлу.
Также рекомендуется добавлять три дефиса в верхней части каждого файла:
::
Вы можете включить в файл необходимые переменные для ваших задач:
::
packages: - [gedit, rolldice]
Если вы хотите, чтобы эта роль загружала список элементов из файлов и URL, установите переменную expand в true:
::
packages: /home/username/my-config.yml
expand: true
Если переменная expand равна false, любой найденный путь к файлу или URL будет считаться обычным текстом.
Атрибуты
На уровне элемента вы можете использовать атрибуты для настройки обработки данной ролью данных элементов.
Поддерживаемые этой ролью атрибуты:
item_expand
Булевое значение, указывающее, следует ли обрабатывать этот элемент как путь к файлу или URL, или просто как обычный текст.
::
packages: - item_expand: true item_path: /home/username/my-config.yml
item_path
Абсолютный путь к файлу или URL к .yml файлу.
::
packages: - item_path: /home/username/my-config.yml
Этот атрибут также работает с URL.
Требования
Ansible <https://www.ansible.com>
_ >= 2.8.Jinja2 <https://palletsprojects.com/p/jinja/>
_.Pip <https://pypi.org/project/pip/>
_.Python <https://www.python.org/>
_.PyYAML <https://pyyaml.org/>
_.Requests <https://2.python-requests.org/en/master/>
_.
Если вы хотите запустить тесты, вам также потребуется:
Docker <https://www.docker.com/>
_.Molecule <https://molecule.readthedocs.io/>
_.Setuptools <https://pypi.org/project/setuptools/>
_.
Совместимость
Debian Buster <https://wiki.debian.org/DebianBuster>
_.Debian Raspbian <https://raspbian.org/>
_.Debian Stretch <https://wiki.debian.org/DebianStretch>
_.Ubuntu Xenial <http://releases.ubuntu.com/16.04/>
_.
Лицензия
MIT. Смотрите файл LICENSE для получения дополнительных сведений.
Ссылки
Github <https://github.com/constrict0r/aptitude>
_.Gitlab <https://gitlab.com/constrict0r/aptitude>
_.Gitlab CI <https://gitlab.com/constrict0r/aptitude/pipelines>
_.Readthedocs <https://aptitude.readthedocs.io>
_.Travis CI <https://travis-ci.com/constrict0r/aptitude>
_.
UML
Развертывание
Полная структура проекта показана ниже:
Основное
Поток данных проекта показан ниже:
Автор
Путешествующий злодей.
Наслаждайтесь!!!
Wrapper for apt to install Debian packages.
ansible-galaxy install constrict0r/aptitude