abn.managed-node-bootstrap

Bootstrap de nœud géré

État de la construction Rôle Ansible

Bootstrap un nœud géré par Ansible avec des dépendances minimales. Ce script a été initialement écrit pour amorcer des instances d'images de base Docker, il pourrait donc nécessiter des améliorations avant d'être stable pour un usage non conteneurisé.

Les distributions actuellement prises en charge sont :

  1. Alpine Linux
  2. Distributions basées sur Debian utilisant apt-get (Ubuntu)
  3. OpenSUSE
  4. Distributions basées sur Red Hat utilisant dnf/yum (Red Hat Enterprise Linux, CentOS, Fedora)

Conditions requises

Aucune exigence supplémentaire n'est imposée, en dehors d'une version d'Ansible qui prend en charge le module raw. Le développement a été réalisé sur Ansible 2.2+.

Variables de rôle

Ce rôle prend en charge les configurations suivantes via des variables :

  1. managed_node_bootstrap_use_sudo : Mettez ceci sur yes si l'hôte en question a sudo installé et que vous vous connectez en tant qu'utilisateur non root.
  2. managed_node_bootstrap_cmd_prefix : La valeur par défaut est sudo si managed_node_bootstrap_use_sudo est activé. Vous pouvez la remplacer pour vous assurer que ce préfixe est ajouté à toutes les commandes exécutées.
  3. managed_node_bootstrap_done_file : Cela spécifie le fichier à utiliser comme indicateur si la tâche de bootstrap a été exécutée avec succès auparavant.
  4. managed_node_packages_{alpine,debian,opensuse,redhat} : Ceci sert à configurer la liste des packages à installer pour chacune de ces familles de distributions.

Dépendances

Aucune dépendance requise en dehors d'Ansible lui-même.

Exemple de playbook

Voici un exemple de play qui peut être utilisé pour amorcer tous vos hôtes dans votre inventaire. Notez que la méthode de connexion Ansible, etc., doit être configurée indépendamment de cela. De plus, notez que cela nécessite de se connecter en tant qu'utilisateur root, car nous supposons que sudo n'est pas disponible sur ces instances (supposition d'image Docker). Voir ci-dessus pour savoir comment modifier ce comportement.

---
- name: amorcer un nœud géré par ansible
  hosts: all
  gather_facts: False
  roles:
    - abn.molecule-node-bootstrap

Tests

Avant de tester, vous devez vous assurer que les sous-modules requis ont été clonés.

git submodule update --init --recursive

Environnement local

Ce rôle utilise Molecule et des instances Docker pour permettre les tests. Vous pouvez le faire localement sur votre environnement de développement, à condition d'avoir Python installé et de faire fonctionner le démon Docker.

# installer les exigences de molecule et docker-py
pip install -r test-requirements.txt
molecule test

Cela démarrera, comme configuré dans le scénario de molécules par défaut, des conteneurs des distributions prises en charge et exécutera un échantillon de playbook.

Tox

Ce projet a également tox configuré pour fonctionner avec plusieurs versions d'Ansible avec Molecule. Cela peut être exécuté simplement en utilisant tox.

tox

Consultez la documentation de Molecule et la documentation de tox pour des instructions d'utilisation avancées.

Licence

Licence Apache 2.0

À propos du projet

Bootstrap an ansible managed node with minimal dependencies

Installer
ansible-galaxy install abn.managed-node-bootstrap
Licence
apache-2.0
Téléchargements
73
Propriétaire