managed-node-bootstrap
Управляемая инициализация узла
Инициализируйте узел, управляемый Ansible, с минимальными зависимостями. Этот инструмент изначально был разработан для инициализации экземпляров базовых образов docker, и поэтому может потребовать улучшений, прежде чем станет стабильным для использования вне контейнеров.
Поддерживаемые дистрибутивы:
- Alpine Linux
- Дистрибутивы на основе Debian с использованием apt-get (Ubuntu)
- OpenSUSE
- Дистрибутивы на основе Red Hat с использованием dnf/yum (Red Hat Enterprise Linux, CentOS, Fedora)
Требования
Нет дополнительных требований, кроме версии Ansible, которая поддерживает модуль raw
. Разработка происходила на Ansible 2.2 или выше.
Переменные роли
Эта роль поддерживает следующие конфигурации через переменные:
managed_node_bootstrap_use_sudo
: Установите значениеyes
, если на хосте установленsudo
, и вы подключаетесь как пользователь, не имеющий прав root.managed_node_bootstrap_cmd_prefix
: По умолчанию устанавливается вsudo
, если выставленоmanaged_node_bootstrap_use_sudo
. Вы можете переопределить это значение, чтобы убедиться, что префикс добавляется ко всем выполняемым командам.managed_node_bootstrap_done_file
: Этот параметр указывает, какой файл использовать в качестве индикатора того, что задача инициализации была успешно выполнена ранее.managed_node_packages_{alpine,debian,opensuse,redhat}
: Используется для конфигурации списка пакетов, которые необходимо установить для каждой из этих семейств дистрибутивов.
Зависимости
Зависимости не требуются, кроме самого Ansible.
Пример плейбука
Вот пример плейбука, который можно использовать для инициализации всех ваших хостов в инвентаре. Обратите внимание, что метод подключения Ansible и другие параметры должны быть настроены отдельно. Кроме того, обратите внимание, что для этого требуется подключение как пользователь root, так как мы предполагаем, что sudo
недоступен на этих экземплярах (предположение об образах Docker). Смотрите выше, чтобы изменить это поведение.
---
- name: инициализация узла, управляемого ansible
hosts: all
gather_facts: False
roles:
- abn.molecule-node-bootstrap
Тестирование
Перед тестированием необходимо убедиться, что необходимые подпроекты были клонированы.
git submodule update --init --recursive
Локальная среда
Эта роль использует Molecule и экземпляры Docker для тестирования. Вы можете запустить это локально в вашей среде разработки, если у вас установлен Python и запущен демон Docker.
# установить требования molecule и docker-py
pip install -r test-requirements.txt
molecule test
Это приведет к созданию контейнеров поддерживаемых дистрибутивов и выполнению примера плейбука, как настроено в сценарии по умолчанию Molecule.
Tox
Этот проект также настроен на использование tox для работы с несколькими версиями Ansible вместе с Molecule. Это можно легко запустить с помощью tox.
tox
Обратитесь к документации по Molecule и документации по tox для получения дополнительных инструкций по использованию.
Лицензия
Лицензия Apache 2.0
Bootstrap an ansible managed node with minimal dependencies
ansible-galaxy install abn/ansible-role-managed-node-bootstrap