abn.managed-node-bootstrap

Arranque de Nodo Gestionado

Estado de Construcción Rol de Ansible

Arranque de un nodo gestionado por Ansible con dependencias mínimas. Esto fue escrito originalmente para iniciar instancias de imágenes base de Docker, y puede requerir mejoras antes de que sea estable para usos que no sean en contenedores.

Las distribuciones soportadas actualmente son:

  1. Alpine Linux
  2. Distribuciones basadas en Debian utilizando apt-get (Ubuntu)
  3. OpenSUSE
  4. Distribuciones basadas en Red Hat utilizando dnf/yum (Red Hat Enterprise Linux, CentOS, Fedora)

Requisitos

No se requieren requisitos adicionales aparte de una versión de Ansible que soporte el módulo raw. El desarrollo se realizó en Ansible 2.2 o superior.

Variables del Rol

Este rol soporta las siguientes configuraciones a través de variables.

  1. managed_node_bootstrap_use_sudo: Configúralo en yes si el host tiene sudo instalado y te estás conectando como un usuario que no es root.
  2. managed_node_bootstrap_cmd_prefix: Por defecto es sudo si managed_node_bootstrap_use_sudo está configurado. Puedes sobrescribir esto para asegurarte de que este prefijo sea añadido a todos los comandos ejecutados.
  3. managed_node_bootstrap_done_file: Especifica qué archivo usar como indicador si la tarea de arranque se ejecutó correctamente antes.
  4. managed_node_packages_{alpine,debian,opensuse,redhat}: Se usa para configurar la lista de paquetes a instalar para cada una de estas familias de distribución.

Dependencias

No se requieren dependencias adicionales aparte de Ansible.

Ejemplo de Playbook

Aquí hay un ejemplo de un playbook que se puede usar para arrancar todos tus hosts en tu inventario. Ten en cuenta que el método de conexión de Ansible, etc., debe estar configurado externamente a esto. Además, ten en cuenta que se requiere conectarse como usuario root, ya que asumimos que sudo no está disponible en estas instancias (asumido para la imagen de Docker). Consulta arriba cómo modificar este comportamiento.

---
- nombre: arrancar nodo gestionado por ansible
  hosts: all
  gather_facts: False
  roles:
    - abn.molecule-node-bootstrap

Pruebas

Antes de probar, necesitas asegurarte de que los submódulos requeridos han sido clonados.

git submodule update --init --recursive

Entorno Local

Este rol utiliza Molecule e instancias de docker para habilitar pruebas. Puedes ejecutar esto localmente en tu entorno de desarrollo siempre que tengas Python instalado y estés ejecutando el demonio de Docker.

# instalar requisitos de molecule y docker-py
pip install -r test-requirements.txt
molecule test

Esto, como está configurado en el escenario de molecule por defecto, iniciará contenedores de las distribuciones soportadas y ejecutará un playbook de ejemplo.

Tox

Este proyecto también tiene tox configurado para ejecutarse contra múltiples versiones de Ansible con Molecule. Esto se puede ejecutar simplemente usando tox.

tox

Consulta la documentación de Molecule y la documentación de tox para instrucciones avanzadas.

Licencia

Licencia Apache 2.0

Acerca del proyecto

Bootstrap an ansible managed node with minimal dependencies

Instalar
ansible-galaxy install abn.managed-node-bootstrap
Licencia
apache-2.0
Descargas
73