andrelohmann.odoo

odoo

Letzter Test

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

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • 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>
Über das Projekt

ansible galaxy role to install odoo from sources

Installieren
ansible-galaxy install andrelohmann.odoo
GitHub Repository
Lizenz
mit
Downloads
184
Besitzer