abn.managed-node-bootstrap
Arranque de Nodo Gestionado
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:
- Alpine Linux
- Distribuciones basadas en Debian utilizando apt-get (Ubuntu)
- OpenSUSE
- 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.
managed_node_bootstrap_use_sudo
: Configúralo enyes
si el host tienesudo
instalado y te estás conectando como un usuario que no es root.managed_node_bootstrap_cmd_prefix
: Por defecto essudo
simanaged_node_bootstrap_use_sudo
está configurado. Puedes sobrescribir esto para asegurarte de que este prefijo sea añadido a todos los comandos ejecutados.managed_node_bootstrap_done_file
: Especifica qué archivo usar como indicador si la tarea de arranque se ejecutó correctamente antes.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
Bootstrap an ansible managed node with minimal dependencies
ansible-galaxy install abn.managed-node-bootstrap