andrelohmann.wkhtmltopdf

wkhtmltopdf

Ostatni test

Zawartość

Użyj tej roli, aby zainstalować konsolowy generator pdf wkhtmltopdf oraz zestaw czcionek Google, które będą używane w generowanych dokumentach pdf.

wkhtmltopdf jest instalowany z źródeł dystrybucji Ubuntu.

Wymagania

Ta rola wymaga Ubuntu.

Zmienne Roli

Domyślny zestaw zmiennych może być używany do decydowania, czy należy zainstalować cały zestaw czcionek Google.

wkhtmltopdf_install_google_fonts: true

Wyciągnij aktualną wersję tagu z tutaj.

Przykładowy Playbook

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

Rozwój Roli

Specjalny cel

To repozytorium wspiera następujące funkcje dla rozwoju roli:

  • yamllint
  • ansible-lint
  • testowanie molekuł
  • akcja github
  • automatyczna aktualizacja wersji
  • aktualizacja ansible-galaxy
  • wyświetlanie statusu budowy
  • test w środowisku vagrant (do celów rozwojowych)
  • test z użyciem molekuł (wewnątrz lub na zewnątrz vagranta)
  • test w kontenerze docker
  • testowanie i rozwijanie wewnątrz vscode

Wymagania wstępne

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

  • Zainstalowany Virtualbox + Vagrant (tylko jeśli rola ma być testowana również z vagrantem)
  • Docker Desktop
  • VisualStudioCode + pakiet rozszerzeń zdalnych (zależności są zdefiniowane w .vscode/extensions.json)

Ustawienia rozwoju

Ta rola ansible jest rozwijana z użyciem molekuł do testowania. Jej rozwój oparty jest na Visual Studio Code oraz odpowiednim kontenerze deweloperskim, który rozwiązuje wszystkie zależności w zakresie niezbędnych narzędzi (ansible, linter, molekuły).

Rola będzie testowana na Ubuntu Jammy.

Aby uruchomić kontenery testowe molekuł w obrębie kontenera deweloperskiego, gniazdo dockera musi być zamontowane w kontenerze deweloperskim.

Ważne foldery i pliki

.devcontainer
  • Definiuje Dockerfile dla kontenera deweloperskiego
  • Konfiguruje uruchamianie kontenera deweloperskiego (np. montowanie gniazda dockera)
molecule/default/Dockerfile.js
  • Używany jako szablon dla wszystkich platform zdefiniowanych w molecule/default/molecule.yml
  • Przygotowuje środowiska, aby wspierać usługi systemd (niezbędne dla niektórych ról ansible działających na systemd)
  • Instaluje wszystkie wymagania do uruchomienia ansible przeciwko pochodnemu kontenerowi
  • Plik jest dostosowany do atrybutów platform w molecule/default/molecule.yml
  • Aby uzyskać więcej informacji - zapoznaj się z dokumentacją molekuły

Użycie

Visual Studio Code

  • Przejdź do katalogu głównego swojej roli i uruchom vscode
code .
  • W obrębie kontenera deweloperskiego możesz użyć poniższych poleceń uruchamiających
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • Przejdź do katalogu głównego swojej roli
  • Przejdź do folderu vagrant
  • Uruchom i wejdź do maszyny vagrant
vagrant up
vagrant ssh
  • Przejdź do folderu roli
cd /etc/ansible/roles/ansible-role- [tab]
  • Teraz możesz uruchomić wszystkie testy
yamllint .
ansible-lint .
molecule create
molecule test

Proces budowy i wydania

Rola ansible definiuje zestaw workflow github do uruchamiania testów molekulu i zarządzania wydaniami.

Zarządzanie wydaniem wymaga kilku ustawień.

Ochrona gałęzi master/main

  • Ustawienia -> Gałęzie -> Dodaj regułę ochrony gałęzi
  • Wzór nazwy gałęzi -> main lub master (w zależności od twojej domyślnej gałęzi)
  • Ochronić pasujące gałęzie -> zaznacz "Wymagaj pull requestu przed scaleniem"
  • "Wymagane zatwierdzenia" można indywidualnie obsługiwać zgodnie z wymaganiami

Przyznanie uprawnień do odczytu i zapisu dla GITHUB_TOKEN

  • Ustawienia -> Akcje -> Ogólne -> Uprawnienia do workflow -> uprawnienia do odczytu i zapisu

Wiadomości o zatwierdzeniu

Wiadomości o zatwierdzeniu powinny podążać za specjalnym formatem, aby osiągnąć aktualizację wersji patch, minor lub major.

patch

0.0.x

fix(single_word): opis
minor

0.x.0

feat(single_word): opis
major

x.0.0

perf(single_word): opis
BREAKING CHANGE: opis zmiany

Jest to bardzo ważne, aby "BREAKING CHANGE: " było wymienione w drugiej i kolejnych linijkach. Przy jedno-liniowych wiadomościach zatwierdzeń, aktualizacja wersji major zostanie zignorowana.

Dodaj sekret GALAXY_API_KEY

  • Zaloguj się na swoje konto github na https://galaxy.ansible.com/.
  • Pobierz klucz API galaxy z Preferencje -> Klucz API
  • Otwórz swoje repozytorium roli na githubie
  • Ustawienia -> Sekrety i zmienne -> Akcje -> Nowy sekret repozytorium
  • Użyj "GALAXY_API_KEY" jako klucza i skopiowanego klucza API galaxy jako wartości

Licencja

MIT

Informacje o autorze

© Andre Lohmann (i inni) 2024

https://github.com/andrelohmann

Kontakt do opiekuna

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
O projekcie

ansible galaxy role to install wkhtmltopdf client generator

Zainstaluj
ansible-galaxy install andrelohmann.wkhtmltopdf
Licencja
mit
Pobrania
11.9k
Właściciel