itnok.is_ubuntu

is-ubuntu

État de la construction Tag GitHub Rôle Ansible

Détecte si l'hôte Ubuntu cible est... un conteneur ou éventuellement localhost.

Les étapes effectuées sont :

  • Définir le fait is_ubuntu_localhost
  • Vérifier si nous sommes à l'intérieur d'un conteneur ou non
  • Définir le fait is_ubuntu_inside_container
  • Vérifier si les paramètres de proxy sont présents ou non

:exclamation: Exigences


Aucune.

:abcd: Variables de rôle


Variable Description Valeur par défaut
is_force_lookup La recherche de faits supplémentaires personnalisés n'a pas lieu s'ils existent déjà. Cela permet de forcer la recherche non
is_test_url_list Liste d'URL à tester pour détecter la connectivité/accessibilité Internet []

Aucune.

:loudspeaker: Faits


Ce rôle crée les faits suivants qui peuvent être utilisés par d'autres rôles ou playbooks impliqués :

Fait Description
is_ubuntu_behind_proxy Version associée au rôle Ansible actuel lorsqu'il est exécuté (ce fait N'EST PAS mis à jour s'il est présent, à moins que is_force_lookup soit réglé sur oui)
is_ubuntu_inside_container Vrai lorsque nous sommes à l'intérieur d'un conteneur. Cela se produit lorsque le PID 1 n'est ni init ni systemd (ce fait N'EST PAS mis à jour s'il est présent, à moins que is_force_lookup soit réglé sur oui)
is_ubuntu_localhost Vrai lorsque la machine cible du rôle est localhost (ce fait N'EST PAS mis à jour s'il est présent, à moins que is_force_lookup soit réglé sur oui)
is_ubuntu_network_reachable Vrai lorsque toutes les URL passées avec is_test_url_list sont accessibles (cela inclut également toutes les URL de /etc/apt/sources.list par défaut)
is_ubuntu_url_reachable_list Liste de toutes les URL accessibles
is_ubuntu_url_unreachable_list Liste de toutes les URL inaccessibles

:notebook: Exemple de Playbook


Voici un exemple de comment utiliser ce rôle dans vos playbooks :

---
- hosts: serveurs
  remote_user: ubuntu   # optionnel (votre utilisateur distant)
  gather_facts: oui     # optionnel

  roles:
    - { role: itnok.is_ubuntu }

:microscope: Tests


Ce rôle prend en charge les tests en utilisant Molecule pour vérifier ses fonctionnalités dans un environnement générique.

Molecule N'EST PAS nécessaire pour utiliser le rôle, mais il est nécessaire pour le tester sur une installation locale ou en CI. Un exemple d'utilisation de Molecule pour la CI peut être trouvé dans les GitHub Actions de ce dépôt. Pour installer Molecule, veuillez vous référer aux instructions sur la documentation en ligne de Molecule. Si les dépendances nécessaires énumérées y sont en place, tout devrait être aussi simple que de taper :

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

Les tests s'exécutent à l'intérieur de conteneurs créés à la volée pour l'objectif (pour être aussi générique que possible). Pour cette raison, Molecule doit avoir Docker installé. Si Podman est éventuellement une alternative préférée pour gérer les conteneurs, la commande nécessaire pour installer Molecule devrait être modifiée comme suit :

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

Pour utiliser Podman, le pilote utilisé par Molecule doit également être changé dans le fichier molecule/default/molecule.yml : les lignes #5-6 doivent être modifiées comme suit :

driver:
  name: podman

Tous les tests, en plus des vérifications pour le formatage, le linting et l'idempotence, peuvent être exécutés en utilisant :

$ molecule test --parallel

(L'utilisation de l'option facultative --parallel lors du lancement de la suite de tests est fortement recommandée car, en testant sur plusieurs conteneurs cibles, cela réduit considérablement le temps d'exécution des tests !)

Des tests supplémentaires peuvent être ajoutés au playbook molecule/default/verify.yml si nécessaire.

:guardsman: Licence


MIT (en savoir plus)

À propos du projet

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

Installer
ansible-galaxy install itnok.is_ubuntu
Licence
mit
Téléchargements
6.8k
Propriétaire