bootstrap
Описание роли
Подготовьте ваши системы Debian и Ubuntu для Ansible.
Пример плейбука
Этот пример взят из molecule/default/converge.yml
и тестируется при каждом пуше, pull запросе и релизе.
---
- name: Converge
hosts: all
become: true
gather_facts: false
roles:
- role: tehtbl.bootstrap
Машина, на которой вы выполняете это, может потребовать подготовки, я использую этот плейбук, чтобы убедиться, что все готово для работы роли.
---
- name: Prepare
hosts: all
become: true
gather_facts: false
Переменные роли
Эти переменные установлены в defaults/main.yml
:
---
# ------------------------------------------------------------------------
# файл настроек для bootstrap
# ------------------------------------------------------------------------
# Пользователь, который будет использоваться для подключения к машинам.
bootstrap_user: root
# Установленное программное обеспечение для поддержки модулей, помеченных как "предварительный просмотр" (т.е. mysql_db).
# "да", "нет" или не установлено - допустимые значения.
bootstrap_preview: true
# Хотите ли вы дождаться, пока хост станет доступным?
bootstrap_wait_for_host: false
# Количество секунд, которое вы хотите подождать во время проверки соединения перед тем, как завершить с ошибкой.
bootstrap_timeout: 3
# Количество попыток в процессе установки
bootstrap_retries: 3
Требования
- Доступ к репозиторию, содержащему пакеты, вероятно, в интернете.
- Недавняя версия Ansible. (Тесты проводятся на текущем, предыдущем и следующем релизе Ansible.)
Контекст
Эта роль является частью многих совместимых ролей. Ознакомьтесь с моими другими ролями для получения дополнительной информации.
Совместимость
Эта роль была протестирована на следующих Docker образах:
контейнер | тег | разрешенные ошибки |
---|---|---|
debian | stable | нет |
debian | testing | нет |
debian | unstable | да |
ubuntu | xenial | да |
ubuntu | bionic | нет |
ubuntu | focal | нет |
ubuntu | devel | да |
Эта роль была протестирована на следующих версиях Ansible:
- ansible>=2.8, <2.9
- ansible>=2.9
- git+https://github.com/ansible/ansible.git@devel
Тестирование с помощью Tox
Юнит-тесты проводятся при каждом коммите, pull запросе, релизе и периодически.
Если вы обнаружите проблемы, пожалуйста, зарегистрируйте их в GitHub
Тестирование проводится с использованием Tox и Molecule:
Tox тестирует несколько версий Ansible. Molecule тестирует несколько дистрибутивов.
Чтобы протестировать с использованием настроек по умолчанию (любая установленная версия Ansible, пространство имен: tehtbl
, образ: ubuntu
, тег: latest
):
molecule test
# Или выберите конкретный образ:
IMAGE="ubuntu" molecule test
# Или выберите конкретный образ и конкретный тег:
IMAGE="debian" TAG="stable" tox
Или вы можете протестировать несколько версий Ansible и выбрать необходимые образы:
Tox позволяет тестировать несколько версий Ansible. Чтобы запустить тесты по умолчанию (пространство имен: tehtbl
, образ: ubuntu
, тег: latest
):
tox
# Чтобы запустить Ubuntu (пространство имен: `tehtbl`, тег: `latest`)
IMAGE="ubuntu" tox
# Или настраивайте больше:
IMAGE="debian" TAG="stable" tox -e py37-ansible-current
Тестирование с использованием Vagrant
Установите плагины vagrant
с помощью:
vagrant plugin install vagrant-reload
Запустите тесты через VirtualBox провайдер:
vagrant up
Лицензия
Лицензия MIT
Информация об авторе
Источники
Эта работа основана на великой работе многих людей, таких как Robert de Bock, Jeff Geerling и Thomas Waldmann. Спасибо!
Prepare your Debian and Ubuntu Systems for Ansible.
ansible-galaxy install tehtbl/ansible-role-bootstrap