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