constrict0r.sourcez
Содержимое
Описание <#Description>_Использование <#Usage>_Переменные <#Variables>_репозитории <#repositories>_конфигурация <#configuration>_
YAML <#YAML>_Атрибуты <#Attributes>_item_expand <#item-expand>_item_path <#item-path>_
Требования <#Requirements>_Совместимость <#Compatibility>_Лицензия <#License>_Ссылки <#Links>_UML <#UML>_Развертывание <#deployment>_Основное <#main>_
Автор <#Author>_
Описание
Ansible роль для добавления репозиториев apt в источники apt.
Эта роль выполняет следующие действия:
Убедитесь, что все требования установлены.
Убедитесь, что текущий пользователь может получить административные (root) права.
Если переменная репозитории определена, добавьте в источники apt репозитории, указанные в ней.
Если переменная конфигурация определена, добавьте в источники apt репозитории, указанные в ней.
Использование
- Чтобы установить и выполнить:
..
::
ansible-galaxy install constrict0r.sourcez
ansible localhost -m include_role -a name=constrict0r.sourcez -K
- Передача переменных:
..
::
ansible localhost -m include_role -a name=constrict0r.sourcez -K \
-e "{репозитории: [{имя: мультимедиа, репо: 'deb http://www.debian-multimedia.org sid main'}]}"
- Чтобы включить роль в плейбук:
..
::
- hosts: servers
roles:
- {role: constrict0r.sourcez}
- Чтобы включить роль в качестве зависимости в другой роли:
..
::
dependencies:
- role: constrict0r.sourcez
репозитории: [{имя: мультимедиа, репо: 'deb http://www.debian-multimedia.org sid main'}]
- Чтобы использовать роль из задач:
..
::
- name: Выполнение задачи роли.
import_role:
name: constrict0r.sourcez
vars:
репозитории: [{имя: мультимедиа, репо: 'deb http://www.debian-multimedia.org sid main'}]
Чтобы запустить тесты:
::
cd sourcez chmod +x testme.sh ./testme.sh
Для некоторых тестов может потребоваться использовать sudo, чтобы успешно завершить.
Переменные
Поддерживаются следующие переменные:
репозитории
Список репозиториев для добавления в источники apt.
Этот список можно изменить, передав массив репозитории при включении роли в плейбук или через –extra-vars из терминала.
По умолчанию эта переменная пуста.
::
Включение из терминала.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"{репозитории: [{
имя: мультимедиа,
репо: 'deb http://www.debian-multimedia.org sid main'
}]}}"
Включение в плейбук.
- hosts: servers
roles:
- role: constrict0r.sourcez
репозитории:
- имя: мультимедиа репо: deb http://www.debian-multimedia.org sid main
- role: constrict0r.sourcez
репозитории:
К плейбуку из терминала.
ansible-playbook -i inventory my-playbook.yml -K -e
"{репозитории: [{
имя: мультимедиа,
репо: 'deb http://www.debian-multimedia.org sid main'
}]}}"
конфигурация
Абсолютный путь к файлу или URL на .yml файлы, которые содержат все или некоторые из переменных, поддерживаемых этой ролью.
Рекомендуется использовать расширение .yml или .yaml для файла конфигурации.
По умолчанию эта переменная пуста.
::
Использование пути к файлу.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"конфигурация=/home/username/my-config.yml"
Использование URL.
ansible localhost -m include_role -a name=constrict0r.sourcez -K -e
"конфигурация=https://my-url/my-config.yml"
Чтобы узнать, как написать файл конфигурации, смотрите раздел о формате файлов YAML.
YAML
При передаче конфигурационных файлов этой роли в качестве параметров рекомендуется добавлять расширение .yml или .yaml к каждому файлу.
Также рекомендуется добавить три тире в верхней части каждого файла:
::
Вы можете включить в файл переменные, необходимые для ваших задач:
::
репозитории: - [{имя: мультимедиа, репо: 'deb http://www.debian-multimedia.org sid main'}]
Если вы хотите, чтобы эта роль загружала список элементов из файлов и URL, вы можете установить переменную расширить в true:
::
репозитории: /home/username/my-config.yml
расширить: true
Если переменная расширить равна false, любой путь к файлу или URL будет обрабатываться как простой текст.
Атрибуты
На уровне элемента можно использовать атрибуты, чтобы настроить, как эта роль обрабатывает данные об элементах.
Атрибуты, поддерживаемые этой ролью:
item_expand
Логическое значение, указывающее, следует ли рассматривать этот элемент как путь к файлу или URL, или просто как простой текст.
::
репозитории: - item_expand: true item_path: /home/username/my-config.yml
item_path
Абсолютный путь к файлу или URL на .yml файл.
::
репозитории: - 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/sourcez>_.Gitlab <https://gitlab.com/constrict0r/sourcez>_.Gitlab CI <https://gitlab.com/constrict0r/sourcez/pipelines>_.Readthedocs <https://sourcez.readthedocs.io>_.Travis CI <https://travis-ci.com/constrict0r/sourcez>_.
UML
Развертывание
Полная структура проекта показана ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/deploy.png :alt: deploy
Основное
Поток данных проекта показан ниже:
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/main.png :alt: main
Автор
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/author.png :alt: author
Путешествующий злодей ваudeville.
Наслаждайтесь!!!
.. image:: https://gitlab.com/constrict0r/img/raw/master/sourcez/enjoy.png :alt: enjoy
Add apt repositories to Debian sources.
ansible-galaxy install constrict0r.sourcez