andrelohmann.odoo
odoo
Contenu
Utilisez ce rôle pour installer la dernière version d'odoo à partir des sources sur votre serveur ubuntu.
Exigences
Ce rôle nécessite ubuntu.
Variables du rôle
Définissez les variables et les paramètres de configuration d'odoo.
odoo_release: latest # par exemple, 16, 17
# définissez odoo_source_install sur false pour installer à partir des paquets nocturnes
odoo_source_install: false
odoo_config: []
# Utilisez le format clé / valeur pour les paramètres de configuration
# - key: db_name
# value: odoo
# - key: admin_passwd
# value: S3cr3t!
# Bases de données préinstallées
odoo_init_databases: []
#- database: odoo_1
# language: de_DE
Exemple de Playbook
- hosts: odoo
become: yes
roles:
- { role: andrelohmann.odoo }
Développement du rôle
Objectif spécial
Ce dépôt prend en charge les fonctionnalités suivantes pour le développement du rôle :
- yamllint
- ansible-lint
- test molecule
- action github
- mise à jour automatique de la version
- mise à jour d'ansible-galaxy
- afficher l'état de la construction
- tests avec vagrant (pour le développement)
- tests avec molecule (à l'intérieur ou à l'extérieur de vagrant)
- tests contre un conteneur docker
- développement et tests dans vscode
Prérequis
- Virtualbox + Vagrant installés (uniquement nécessaire si le rôle doit également être testé avec vagrant)
- Docker Desktop
- VisualStudioCode + paquet d'extensions à distance (les dépendances sont définies dans .vscode/extensions.json)
Configuration du développement
Ce rôle ansible est développé en utilisant molecule pour les tests. Son développement se fait sur visual studio code avec un conteneur de développement, résolvant toutes les dépendances en termes d'outils nécessaires (ansible, linter, molecule).
Le rôle sera testé sur ubuntu noble.
Pour démarrer les conteneurs de test molecule depuis le conteneur de développement, le socket docker doit être monté 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 dépendances 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 de molecule
Utilisation
Visual Studio Code
- Changez de répertoire pour le répertoire racine de votre rôle et démarrez vscode
code .
- Depuis le conteneur de développement, vous pouvez utiliser les commandes suivantes
yamllint .
ansible-lint .
molecule create
molecule test --all
Vagrant + Virtualbox
- Changez de répertoire pour le répertoire racine de votre rôle
- Changez de répertoire pour le dossier vagrant
- Démarrer et entrer dans la machine vagrant
vagrant up
vagrant ssh
- Changez de répertoire pour le dossier du rôle
cd /etc/ansible/roles/ansible-role- [tab]
- Vous pouvez maintenant exécuter tous les tests
yamllint .
ansible-lint .
molecule create
molecule test --all
Processus de construction et de publication
Le rôle ansible définit plusieurs workflows github pour exécuter des tests molecule et gérer les publications.
La gestion des publications nécessite quelques paramètres.
Protéger la branche master/main
- Paramètres -> Branches -> Ajouter une règle de protection de branche
- Nom du motif de branche -> main ou master (selon votre branche par défaut)
- Protéger les branches correspondantes -> cochez "Exiger une demande de tirage avant de fusionner"
- "Exiger des approbations" peut être géré individuellement selon les besoins
Donner des permissions de lecture et d'écriture à GITHUB_TOKEN
- Paramètres -> Actions -> Général -> Permissions des workflows -> permissions de lecture et d'écriture
Messages de commit
Les messages de commit doivent suivre un format spécial pour réaliser une mise à jour de version sémantique de correctif, mineure ou majeure.
correctif
0.0.x
fix(single_word): description
mineure
0.x.0
feat(single_word): description
majeure
x.0.0
perf(single_word): description
BREAKING CHANGE: description du changement cassant
Il est très important que "BREAKING CHANGE: " soit mentionné dans la deuxième ligne ou plus. Pour les messages de commit sur une seule ligne, la mise à jour majeure sera ignorée.
Ajouter le secret GALAXY_API_KEY
- Authentifiez-vous avec votre compte github sur https://galaxy.ansible.com/.
- Récupérez la clé API galaxy dans Préférences -> Clé API
- Ouvrez le dépôt de votre 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) 2024
https://github.com/andrelohmann
Contact du mainteneur
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.odoo