andrelohmann.wkhtmltopdf

wkhtmltopdf

Última prueba

Contenido

Usa este rol para instalar el generador de PDF de consola wkhtmltopdf + el conjunto completo de fuentes de Google que se utilizarán dentro de los documentos PDF generados.

wkhtmltopdf se instala desde las fuentes de distribución de Ubuntu.

Requisitos

Este rol requiere Ubuntu.

Variables del Rol

El conjunto de variables predeterminadas se puede usar para decidir si se necesita instalar todo el conjunto de fuentes de Google.

wkhtmltopdf_install_google_fonts: true

Extrae la versión de la etiqueta actual desde aquí.

Ejemplo de Playbook

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

Desarrollo del Rol

Propósito Especial

Este repositorio admite las siguientes características para el desarrollo del rol:

  • yamllint
  • ansible-lint
  • prueba de molécula
  • acción de github
  • actualización automática de la versión
  • actualización de ansible-galaxy
  • mostrar el estado de la construcción
  • prueba dentro de vagrant (con fines de desarrollo)
  • prueba con molécula (dentro o fuera de vagrant)
  • prueba contra contenedor docker
  • prueba y desarrollo dentro de vscode

Requisitos Previos

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

  • Virtualbox + Vagrant instalados (solo necesario si el rol debe ser probado con vagrant también)
  • Docker Desktop
  • VisualStudioCode + paquete de extensión remota (las dependencias se definen dentro de .vscode/extensions.json)

Configuración de Desarrollo

Este rol de ansible se desarrolla utilizando molécula para pruebas. Su desarrollo está basado en Visual Studio Code y un contenedor de desarrollo correspondiente, resolviendo todas las dependencias en términos de herramientas necesarias (ansible, linter, molécula).

El rol se probará en Ubuntu Jammy.

Para iniciar los contenedores de prueba de molécula desde dentro del contenedor de desarrollo, el socket de Docker debe estar montado en el contenedor de desarrollo.

Carpetas y archivos importantes

.devcontainer
  • Define el Dockerfile para el contenedor de desarrollo
  • Configura el inicio del contenedor de desarrollo (por ejemplo, montando el socket de Docker)
molecule/default/Dockerfile.js
  • Se utiliza como plantilla para todas las plataformas definidas en molecule/default/molecule.yml
  • Prepara los entornos para soportar servicios systemd (necesario para algunos roles de ansible que actúan sobre systemd)
  • Instala todos los requisitos para ejecutar ansible contra el contenedor derivado
  • El archivo está alineado con los atributos de las plataformas en molecule/default/molecule.yml
  • Para más información, estudia la documentación de molécula

Uso

Visual Studio Code

  • Cambia al directorio raíz de tu rol y comienza vscode
code .
  • Desde el contenedor de desarrollo puedes usar los siguientes comandos de ejecución
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • Cambia al directorio raíz de tu rol
  • Cambia a la carpeta de vagrant
  • Inicia y entra en la máquina vagrant
vagrant up
vagrant ssh
  • Cambia al folder del rol
cd /etc/ansible/roles/ansible-role- [tab]
  • Ahora puedes ejecutar todas las pruebas
yamllint .
ansible-lint .
molecule create
molecule test

Proceso de Construcción y Lanzamiento

El rol de ansible define una serie de flujos de trabajo de github para ejecutar pruebas de molécula y gestión de lanzamientos.

La gestión de lanzamientos requiere un puñado de configuraciones.

Proteger la rama principal/master

  • Configuración -> Ramas -> Agregar regla de protección de rama
  • Nombre del patrón de rama -> main o master (dependiendo de tu rama predeterminada)
  • Proteger ramas coincidentes -> marcar "Requerir una solicitud de extracción antes de fusionar"
  • "Requerir aprobaciones" se puede manejar individualmente según sea necesario

Dar permisos de lectura y escritura a GITHUB_TOKEN

  • Configuración -> Acciones -> General -> Permisos del flujo de trabajo -> permisos de lectura y escritura

Mensajes de confirmación

Los mensajes de confirmación deben seguir un formato especial para lograr una actualización semántica de versionado de parches, menor o mayor.

parche

0.0.x

fix(single_word): descripción
menor

0.x.0

feat(single_word): descripción
mayor

x.0.0

perf(single_word): descripción
CAMBIO DRÁSTICO: descripción del cambio drástico

Es absolutamente importante que "CAMBIO DRÁSTICO: " sea mencionado en la segunda línea o superior. En mensajes de confirmación de línea única, la actualización mayor será ignorada.

Agregar la clave secreta GALAXY_API_KEY

  • Autentícate con tu cuenta de github en https://galaxy.ansible.com/.
  • Obtén la clave API de galaxy desde Preferencias -> Clave API
  • Abre tu repositorio de rol en github
  • Configuración -> Secretos y variables -> Acciones -> Nuevo secreto de repositorio
  • Usa "GALAXY_API_KEY" como clave y la clave API de galaxy copiada como valor

Licencia

MIT

Información del Autor

© Andre Lohmann (y otros) 2024

https://github.com/andrelohmann

Contacto del Mantenedor

  • Andre Lohmann <lohmann.andre (en) gmail (punto) com>
Acerca del proyecto

ansible galaxy role to install wkhtmltopdf client generator

Instalar
ansible-galaxy install andrelohmann.wkhtmltopdf
Licencia
mit
Descargas
11.9k
Propietario