managed-node-bootstrap

Управляемая инициализация узла

Статус сборки Ansible Роль

Инициализируйте узел, управляемый Ansible, с минимальными зависимостями. Этот инструмент изначально был разработан для инициализации экземпляров базовых образов docker, и поэтому может потребовать улучшений, прежде чем станет стабильным для использования вне контейнеров.

Поддерживаемые дистрибутивы:

  1. Alpine Linux
  2. Дистрибутивы на основе Debian с использованием apt-get (Ubuntu)
  3. OpenSUSE
  4. Дистрибутивы на основе Red Hat с использованием dnf/yum (Red Hat Enterprise Linux, CentOS, Fedora)

Требования

Нет дополнительных требований, кроме версии Ansible, которая поддерживает модуль raw. Разработка происходила на Ansible 2.2 или выше.

Переменные роли

Эта роль поддерживает следующие конфигурации через переменные:

  1. managed_node_bootstrap_use_sudo: Установите значение yes, если на хосте установлен sudo, и вы подключаетесь как пользователь, не имеющий прав root.
  2. managed_node_bootstrap_cmd_prefix: По умолчанию устанавливается в sudo, если выставлено managed_node_bootstrap_use_sudo. Вы можете переопределить это значение, чтобы убедиться, что префикс добавляется ко всем выполняемым командам.
  3. managed_node_bootstrap_done_file: Этот параметр указывает, какой файл использовать в качестве индикатора того, что задача инициализации была успешно выполнена ранее.
  4. 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
Лицензия
apache-2.0
Загрузки
59
Владелец