andrelohmann.wkhtmltopdf

wkhtmltopdf

Letzter Test

Inhalt

Verwende diese Rolle, um den wkhtmltopdf Konsolen-PDF-Generator und das vollständige Set an Google Fonts zu installieren, die in den generierten PDF-Dokumenten verwendet werden können.

wkhtmltopdf wird aus den Ubuntu-Distributionquellen installiert.

Anforderungen

Diese Rolle benötigt Ubuntu.

Rollenvariablen

Die Standardvariablen können verwendet werden, um zu entscheiden, ob das gesamte Google Fonts Set installiert werden soll.

wkhtmltopdf_install_google_fonts: true

Extrahiere die aktuelle Versionsnummer hier.

Beispiel-Playbook

- hosts: wkhtmltopdf
  roles:
     - { role: andrelohmann.wkhtmltopdf }

Rollenentwicklung

Sonderzweck

Dieses Repository unterstützt die folgenden Funktionen für die Rollenentwicklung:

  • yamllint
  • ansible-lint
  • Molecule-Test
  • GitHub-Aktion
  • automatische Versionsaktualisierung
  • Ansible-Galaxy aktualisieren
  • Build-Status anzeigen
  • Tests in Vagrant (zu Entwicklungszwecken)
  • Tests mit Molecule (innerhalb oder außerhalb von Vagrant)
  • Tests gegen Docker-Container
  • Testen und Entwickeln innerhalb von 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
  • Visual Studio Code + Remote-Erweiterungspaket (Abhängigkeiten sind in .vscode/extensions.json definiert)

Entwicklungs-Setup

Diese Ansible-Rolle wird mit Molecule für Tests entwickelt. Die Entwicklung basiert auf Visual Studio Code und einem entsprechenden Entwicklungscontainer, der alle Abhängigkeiten in Bezug auf notwendige Tools (Ansible, Linter, Molecule) löst.

Die Rolle wird unter Ubuntu Jammy getestet.

Um die Molecule-Testcontainer aus dem Entwicklungscontainer zu starten, muss der Docker-Socket in den Entwicklungscontainer eingebunden werden.

Wichtige Ordner und Dateien

.devcontainer
  • Definiert das Dockerfile für den Entwicklungscontainer
  • Konfiguriert den Start des Entwicklungscontainers (z.B. Docker-Socket einbinden)
molecule/default/Dockerfile.js
  • Wird als Vorlage für alle in molecule/default/molecule.yml definierten Plattformen verwendet
  • Bereitet die Umgebungen vor, um Systemd-Dienste zu unterstützen (notwendig für einige Ansible-Rollen, die auf Systemd wirken)
  • Installiert alle Voraussetzungen, um Ansible gegen den abgeleiteten Container auszuführen
  • Die Datei ist auf die Attribute der Plattformen in molecule/default/molecule.yml abgestimmt
  • Für mehr Informationen - studiere die Molecule-Dokumentation

Nutzung

Visual Studio Code

  • Wechsle in das Wurzelverzeichnis deiner Rolle und starte VSCode
code .
  • Im Entwicklungscontainer kannst du die folgenden Befehle ausführen
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + VirtualBox

  • Wechsle in das Wurzelverzeichnis deiner Rolle
  • Wechsle in den Vagrant-Ordner
  • Starte und betrete die Vagrant-Maschine
vagrant up
vagrant ssh
  • Wechsle in den Rollen-Ordner
cd /etc/ansible/roles/ansible-role- [tab]
  • Jetzt kannst du alle Tests ausführen
yamllint .
ansible-lint .
molecule create
molecule test

Build- und Veröffentlichungsprozess

Die Ansible-Rolle definiert eine Reihe von GitHub-Arbeitsabläufen, um Molecule-Tests und das Release-Management durchzuführen.

Das Release-Management erfordert einige Einstellungen.

Schutz des Haupt-/Master-Branchs

  • Einstellungen -> Branches -> Eine Branch-Schutzregel hinzufügen
  • Branch-Mustername -> main oder master (je nach deinem Standardbranch)
  • Geschützte Branches -> "Require a pull request before merging" markieren
  • "Require approvals" kann individuell behandelt werden

Lese- und Schreibrechte für GITHUB_TOKEN gewähren

  • Einstellungen -> Aktionen -> Allgemein -> Workflow-Berechtigungen -> Lese- und Schreibrechte

Commit-Nachrichten

Commit-Nachrichten sollten einem speziellen Format folgen, um ein Patch-, Minor- oder Major-Semantikversionsupdate 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 Breaking Changes

Es ist unbedingt erforderlich, dass "BREAKING CHANGE: " in der zweiten oder einer späteren Zeile erwähnt wird. Bei einzeiligen Commit-Nachrichten wird das Major-Version-Update ignoriert.

GALAXY_API_KEY Geheimnis hinzufügen

  • Authentifiziere dich mit deinem GitHub-Konto unter https://galaxy.ansible.com/.
  • Besorge dir den Galaxy API-Schlüssel aus Einstellungen -> API-Schlüssel
  • Öffne dein GitHub-Rollen-Repository
  • Einstellungen -> Geheimnisse und Variablen -> Aktionen -> Neues Repository-Geheimnis
  • Verwende "GALAXY_API_KEY" als Schlüssel und den kopierten Galaxy API-Schlüssel als Wert

Lizenz

MIT

Autor-Informationen

© Andre Lohmann (und andere) 2024

https://github.com/andrelohmann

Kontakt zum Maintainer

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
Über das Projekt

ansible galaxy role to install wkhtmltopdf client generator

Installieren
ansible-galaxy install andrelohmann.wkhtmltopdf
GitHub Repository
Lizenz
mit
Downloads
11.9k
Besitzer