itnok.is_ubuntu

is-ubuntu

Estado de Construcción Etiqueta de GitHub Rol de Ansible

Detecta si el host objetivo de Ubuntu es... un contenedor o eventualmente localhost.

Los pasos realizados son:

  • Establecer el hecho is_ubuntu_localhost
  • Verificar si está dentro de un contenedor o no
  • Establecer el hecho is_ubuntu_inside_container
  • Verificar si hay configuraciones de proxy presentes o no

:exclamation: Requisitos


Ninguno.

:abcd: Variables del Rol


Variable Descripción Valor por Defecto
is_force_lookup La búsqueda de hechos adicionales personalizados no ocurre si ya existen. Esto es para forzar la búsqueda. no
is_test_url_list Lista de URLs para probar la conectividad/accesibilidad a Internet []

Ninguna.

:loudspeaker: Hechos


Este rol crea los siguientes hechos que pueden ser usados por otros roles o playbooks:

Hecho Descripción
is_ubuntu_behind_proxy Versión etiquetada para el rol actual de Ansible cuando se ejecuta (este hecho NO se actualiza si ya está presente, a menos que is_force_lookup esté configurado en yes)
is_ubuntu_inside_container Verdadero cuando está dentro de un contenedor. Esto sucede cuando el PID 1 no es init ni systemd (este hecho NO se actualiza si ya está presente, a menos que is_force_lookup esté configurado en yes)
is_ubuntu_localhost Verdadero cuando la máquina objetivo del Rol es localhost (este hecho NO se actualiza si ya está presente, a menos que is_force_lookup esté configurado en yes)
is_ubuntu_network_reachable Verdadero cuando todos los URLs pasados en is_test_url_list son alcanzables (también incluye todos los URLs de /etc/apt/sources.list por defecto)
is_ubuntu_url_reachable_list Lista de todos los URLs alcanzables
is_ubuntu_url_unreachable_list Lista de todos los URLs inalcanzables

:notebook: Ejemplo de Playbook


Aquí hay un ejemplo de cómo usar este rol en tus playbooks:

---
- hosts: servers
  remote_user: ubuntu   # opcional (tu usuario remoto)
  gather_facts: yes     # opcional

  roles:
    - { role: itnok.is_ubuntu }

:microscope: Pruebas


Este rol soporta pruebas usando Molecule para verificar sus funcionalidades en un entorno genérico.

Molecule NO es necesario para usar el Rol, pero es necesario para probarlo en una instalación local o en CI. Un ejemplo del uso de Molecule para CI se puede encontrar en las GitHub Actions de este repositorio. Para instalar Molecule, por favor consulta las instrucciones en la documentación en línea de Molecule. Si las dependencias necesarias que se mencionan allí están instaladas, todo debería ser tan simple como ejecutar:

$ python3 -m pip install --user "molecule[ansible,docker,lint]"

Las pruebas se ejecutan dentro de contenedores construidos sobre la marcha para este propósito (para ser lo más genérico posible). Por esta razón, Molecule necesita que Docker esté instalado. Si Podman es una alternativa preferida para manejar contenedores, el comando necesario para instalar Molecule debería cambiarse de la siguiente manera:

$ python3 -m pip install --user "molecule[ansible,podman,lint]"

Para usar Podman, el controlador usado por Molecule también debe ser cambiado en el archivo molecule/default/molecule.yml: las líneas #5-6 deben cambiarse de la siguiente manera:

driver:
  name: podman

Todas las pruebas, además de las verificaciones de formato, linting e idempotencia, se pueden ejecutar usando:

$ molecule test --parallel

(Se recomienda encarecidamente usar la opción --parallel opcional al lanzar la suite de pruebas, ya que al probar múltiples contenedores objetivo reduce significativamente el tiempo de ejecución de las pruebas.)

Se pueden añadir pruebas adicionales al playbook molecule/default/verify.yml si surge la necesidad.

:guardsman: Licencia


MIT (lee más)

Acerca del proyecto

Detects whether the target Ubuntu host is... a container or eventually localhost (and more).

Instalar
ansible-galaxy install itnok.is_ubuntu
Licencia
mit
Descargas
6.8k
Propietario