andrelohmann.nodesource
nodesource
Contenu
Utilisez ce rôle pour installer nodejs depuis le dépôt nodesource sur votre serveur ubuntu.
Exigences
Ce rôle nécessite Ubuntu.
Variables de rôle
L'ensemble par défaut de variables définit la version de node et doit idéalement être remplacé dans group_vars/host_vars
.
nodesource_nodejs_version: '20'
Exemple de playbook
- hosts: nodesource
roles:
- { role: andrelohmann.nodesource }
Développement de rôle
Objectif spécial
Ce dépôt prend en charge les fonctionnalités suivantes pour le développement de rôle :
- yamllint
- ansible-lint
- test molecule
- action github
- mise à jour de version automatique
- mise à jour de ansible-galaxy
- afficher l'état de build
- test dans vagrant (pour développement)
- test avec molecule (à l'intérieur ou à l'extérieur de vagrant)
- test contre un conteneur docker
- test et développement à l'intérieur de vscode
Prérequis
- Virtualbox + Vagrant installés (uniquement nécessaire si le rôle doit également être testé avec vagrant)
- Docker Desktop
- VisualStudioCode + pack d'extensions à distance (les dépendances sont définies dans .vscode/extensions.json)
Configuration de développement
Ce rôle ansible est développé en utilisant molecule pour les tests. Son développement est basé sur Visual Studio Code et un conteneur de développement correspondant, résolvant toutes les dépendances en termes d'outils nécessaires (ansible, linter, molecule).
Le rôle sera testé sur trois conteneurs Ubuntu (bionic, focal, jammy).
Pour démarrer les conteneurs de test molecule depuis le conteneur de développement, le socket docker doit être monté comme volume dans le conteneur de développement.
Dossiers et fichiers importants
.devcontainer
- Définit le Dockerfile pour le conteneur de développement
- Configure le démarrage du conteneur de développement (par exemple, monter le socket docker)
molecule/default/Dockerfile.js
- Utilisé comme modèle pour toutes les plateformes définies dans molecule/default/molecule.yml
- Prépare les environnements pour prendre en charge les services systemd (nécessaire pour certains rôles ansible agissant sur systemd)
- Installe toutes les exigences pour exécuter ansible contre le conteneur dérivé
- Le fichier est aligné avec les attributs des plateformes dans molecule/default/molecule.yml
- Pour plus d'informations - consultez la documentation molecule
Utilisation
Visual Studio Code
- Changez pour le répertoire racine de votre rôle et lancez vscode
code .
- Depuis le conteneur de développement, vous pouvez utiliser les commandes d'exécution suivantes
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- Changez pour le répertoire racine de votre rôle
- Changez pour le dossier vagrant
- Démarrez et entrez la machine vagrant
vagrant up
vagrant ssh
- Changez pour le dossier du rôle
cd /etc/ansible/roles/ansible-role- [tab]
- Maintenant, vous pouvez exécuter tous les tests
yamllint .
ansible-lint .
molecule create
molecule test
Processus de build et de release
Le rôle ansible définit un ensemble de workflows github pour exécuter des tests molecule et gérer les releases.
La gestion des releases nécessite quelques paramètres.
Protéger la branche principale
- Paramètres -> Branches -> Ajouter une règle de protection de branche
- Nom du modèle de branche -> main ou master (selon votre branche par défaut)
- Protéger les branches correspondantes -> cochez "Exiger une pull request avant de fusionner"
- "Exiger des approbations" peut être géré individuellement si nécessaire
Accorder les permissions de lecture et d'écriture au GITHUB_TOKEN
- Paramètres -> Actions -> Général -> Permissions de workflow -> permissions de lecture et d'écriture
Messages de commit
Les messages de commit doivent suivre un format spécial pour obtenir une mise à jour de version sémantique patch, mineure ou majeure.
patch
0.0.x
fix(single_word): description
mineur
0.x.0
feat(single_word): description
majeur
x.0.0
perf(single_word): description
BREAKING CHANGE: description du changement majeur
Il est absolument important que "BREAKING CHANGE: " soit mentionné dans la deuxième ligne et plus. Les messages de commit en une seule ligne ignorent la mise à jour majeure.
Ajouter le secret GALAXY_API_KEY
- Authentifiez-vous avec votre compte github sur https://galaxy.ansible.com/.
- Obtenez la clé API galaxy dans Préférences -> Clé API
- Ouvrez votre dépôt de rôle github
- Paramètres -> Secrets et variables -> Actions -> Nouveau secret de dépôt
- Utilisez "GALAXY_API_KEY" comme clé et la clé API galaxy copiée comme valeur
Licence
MIT
Informations sur l'auteur
© Andre Lohmann (et d'autres) 2023
https://github.com/andrelohmann
Contact du mainteneur
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.nodesource