andrelohmann.odoo
odoo
Inhalt
Verwenden Sie dieses Rollenspiel, um die neueste Odoo-Version aus den Quellen auf Ihrem Ubuntu-Server zu installieren.
Anforderungen
Diese Rolle erfordert Ubuntu.
Rollenspielvariablen
Legen Sie die Odoo-Variablen und Konfigurationsparameter fest.
odoo_release: latest # z.B. 16, 17
# Setzen Sie odoo_source_install auf false, um aus Nachtpaketen zu installieren
odoo_source_install: false
odoo_config: []
# Verwenden Sie das Schlüssel/Wert-Format für Konfigurationsparameter
# - Schlüssel: db_name
# Wert: odoo
# - Schlüssel: admin_passwd
# Wert: S3cr3t!
# Vorab konfigurierte Datenbanken
odoo_init_databases: []
#- Datenbank: odoo_1
# Sprache: de_DE
Beispiel-Playbook
- hosts: odoo
become: yes
roles:
- { role: andrelohmann.odoo }
Rollenspielentwicklung
Besonderer Zweck
Dieses Repository unterstützt die folgenden Funktionen für die Rollenspielentwicklung:
- yamllint
- ansible-lint
- Molekültest
- GitHub-Aktion
- automatische Versionsaktualisierung
- aktualisiere ansible-galaxy
- Bau-Status anzeigen
- Testen innerhalb von Vagrant (zu Entwicklungszwecken)
- Testen mit Molekülen (innerhalb oder außerhalb von Vagrant)
- Testen gegen Docker-Container
- Testen und Entwickeln in VSCode
Voraussetzungen
- Virtualbox + Vagrant installiert (nur notwendig, wenn die Rolle auch mit Vagrant getestet werden soll)
- Docker Desktop
- VisualStudioCode + Remote-Extension-Pack (Abhängigkeiten sind in .vscode/extensions.json definiert)
Entwicklungs-Setup
Diese Ansible-Rolle wird mit Molekül für Tests entwickelt. Ihre Entwicklung basiert auf Visual Studio Code und einem entsprechenden Entwicklungskontext, der alle Abhängigkeiten in Bezug auf notwendige Tools (Ansible, Linter, Molekül) löst.
Die Rolle wird auf Ubuntu Noble getestet.
Um die Molekül-Testcontainer aus dem Entwicklungskontext zu starten, muss die Docker-Socke im Entwicklungskontext eingebunden werden.
Wichtige Ordner und Dateien
.devcontainer
- Definiert die Dockerdatei für den Entwicklungskontext
- Konfiguriert den Start des Entwicklungskontexts (z.B. Einbindemontage der Docker-Socke)
molecule/default/Dockerfile.js
- Dient als Vorlage für alle Plattformen, die in molecule/default/molecule.yml definiert sind
- Bereitet die Umgebungen vor, um systemd-Dienste zu unterstützen (notwendig für einige Ansible-Rollen, die auf systemd wirken)
- Installiert alle Anforderungen, um Ansible gegen den abgeleiteten Container auszuführen
- Die Datei ist auf die Attribute der Plattformen in molecule/default/molecule.yml abgestimmt
- Für weitere Informationen - studieren Sie die Molekül-Dokumentation.
Verwendung
Visual Studio Code
- Wechseln Sie in das Stammverzeichnis Ihrer Rolle und starten Sie VSCode.
code .
- Aus dem Entwicklungskontext heraus können Sie die folgenden Ausführungsbefehle verwenden
yamllint .
ansible-lint .
molecule create
molecule test --all
Vagrant + Virtualbox
- Wechseln Sie in das Stammverzeichnis Ihrer Rolle
- Wechseln Sie in den Vagrant-Ordner
- Starten und betreten Sie die Vagrant-Maschine
vagrant up
vagrant ssh
- Wechseln Sie in den Rollenordner
cd /etc/ansible/roles/ansible-role- [tab]
- Jetzt können Sie alle Tests ausführen
yamllint .
ansible-lint .
molecule create
molecule test --all
Build- und Freigabeprozess
Die Ansible-Rolle definiert eine Reihe von GitHub-Workflows, um Molekültests und das Release-Management auszuführen.
Das Release-Management erfordert einige Einstellungen.
Schutz des Master/Main-Branchs
- Einstellungen -> Branches -> Branchschutzregel hinzufügen
- Branchmustername -> main oder master (je nach Ihrem Standardbranch)
- Schutz übereinstimmender Branches -> Aktivieren Sie "Pull-Request vor dem Zusammenführen erforderlich"
- "Genehmigungen erforderlich" kann nach Bedarf individuell behandelt werden.
Lese- und Schreibberechtigungen für GITHUB_TOKEN erteilen
- Einstellungen -> Aktionen -> Allgemein -> Workflow-Berechtigungen -> Lese- und Schreibberechtigungen
Commit-Nachrichten
Commit-Nachrichten sollten einem speziellen Format folgen, um ein Patch-, Minor- oder Major-Semantisches Versionsupdate zu erreichen.
Patch
0.0.x
fix(single_word): Beschreibung
Minor
0.x.0
feat(single_word): Beschreibung
Major
x.0.0
perf(single_word): Beschreibung
BREAKING CHANGE: Beschreibung der brechenden Änderung
Es ist äußerst wichtig, dass "BREAKING CHANGE: " in der zweiten + Zeile erwähnt wird. Bei einzeiligen Commit-Nachrichten wird das Major-Update ignoriert.
SECRET für GALAXY_API_KEY hinzufügen
- Authentifizieren Sie sich mit Ihrem GitHub-Konto unter https://galaxy.ansible.com/.
- Holen Sie sich den Galaxy-API-Schlüssel aus den Einstellungen -> API-Schlüssel.
- Öffnen Sie Ihr GitHub-Rollen-Repository.
- Einstellungen -> Geheimnisse und Variablen -> Aktionen -> Neuen Repository-Geheimnis hinzufügen.
- Verwenden Sie "GALAXY_API_KEY" als Schlüssel und den kopierten Galaxy-API-Schlüssel als Wert.
Lizenz
MIT
Autorinformationen
© Andre Lohmann (und andere) 2024
https://github.com/andrelohmann
Kontakt des Wartungsinhabers
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.odoo