andrelohmann.wkhtmltopdf
wkhtmltopdf
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
- 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>
ansible-galaxy install andrelohmann.wkhtmltopdf