andrelohmann.wkhtmltopdf

wkhtmltopdf

Dernier test

Contenu

Utilisez ce rôle pour installer le générateur de PDF en ligne de commande wkhtmltopdf + l'ensemble complet de polices Google à utiliser dans les documents PDF générés.

wkhtmltopdf est installé à partir des sources de distribution Ubuntu.

Exigences

Ce rôle nécessite Ubuntu.

Variables de rôle

L'ensemble par défaut des variables peut être utilisé pour décider si l'ensemble des polices Google doit être installé.

wkhtmltopdf_install_google_fonts: true

Extrayez la version tag actuelle ici.

Exemple de Playbook

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

Développement du Rôle

But spécial

Ce dépôt prend en charge les fonctionnalités suivantes pour le développement du rôle :

  • yamllint
  • ansible-lint
  • test de molécule
  • action github
  • mise à jour automatique de version
  • mise à jour ansible-galaxy
  • afficher l'état de construction
  • tester dans vagrant (à des fins de développement)
  • tester avec molécule (à l'intérieur ou à l'extérieur de vagrant)
  • tester dans un conteneur docker
  • tester et développer dans vscode

Prérequis

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

  • Virtualbox + Vagrant installés (uniquement nécessaires si le rôle doit également être testé avec vagrant)
  • Docker Desktop
  • VisualStudioCode + package d'extensions distantes (les dépendances sont définies dans .vscode/extensions.json)

Configuration de Développement

Ce rôle ansible est développé en utilisant molécule 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, molécule).

Le rôle sera testé sur Ubuntu Jammy.

Pour démarrer les conteneurs de test de molécule 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, monture du 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 - étudiez la documentation de molécule

Utilisation

Visual Studio Code

  • Changez dans le répertoire racine de votre rôle et démarrez 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 dans le répertoire racine de votre rôle
  • Changez dans le dossier vagrant
  • Démarrez et entrez la machine vagrant
vagrant up
vagrant ssh
  • Changez dans 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 Construction et de Publication

Le rôle ansible définit plusieurs workflows github pour exécuter les tests de molécule et la gestion des versions.

La gestion des versions nécessite quelques paramètres.

Protéger la branche master/main

  • 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

Donner des permissions de lecture et d'écriture à GITHUB_TOKEN

  • Paramètres -> Actions -> Général -> Permissions de flux de travail -> 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 de patch, mineur ou majeur.

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 ou plus. Les messages de commit en une seule ligne ignoreront la mise à jour de la version majeure.

Ajouter le secret GALAXY_API_KEY

  • Authenticatez-vous avec votre compte GitHub à https://galaxy.ansible.com/.
  • Récupérez 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 repository
  • Utilisez "GALAXY_API_KEY" comme clé et la clé API galaxy copiée comme valeur

Licence

MIT

Informations sur l'Auteur

© Andre Lohmann (et autres) 2024

https://github.com/andrelohmann

Contact du Responsable

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
À propos du projet

ansible galaxy role to install wkhtmltopdf client generator

Installer
ansible-galaxy install andrelohmann.wkhtmltopdf
Licence
mit
Téléchargements
11.9k
Propriétaire