abn.managed-node-bootstrap
Bootstrap de nœud géré
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 :
- Alpine Linux
- Distributions basées sur Debian utilisant apt-get (Ubuntu)
- OpenSUSE
- 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 :
managed_node_bootstrap_use_sudo
: Mettez ceci suryes
si l'hôte en question asudo
installé et que vous vous connectez en tant qu'utilisateur non root.managed_node_bootstrap_cmd_prefix
: La valeur par défaut estsudo
simanaged_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.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.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
Bootstrap an ansible managed node with minimal dependencies
ansible-galaxy install abn.managed-node-bootstrap