andrelohmann.mailpit
mailpit
Zawartość
Użyj tej roli, aby zainstalować mailpit i uruchomić go jako demon w tle, korzystając z systemd.
Wymagania
Ta rola wymaga systemu Ubuntu.
Zmienne roli
Domyślny zestaw zmiennych definiuje ustawienia, z którymi zostanie uruchomiony mailpit:
mailpit_smtp_port: 1025
mailpit_web_port: 8025
mailpit_release: latest
Ustawiając poniższe dodatkowe zmienne, możesz korzystać z mailpit za pośrednictwem Apache:
mailpit_proxy_apache: true
mailpit_proxy_domain: _twoja.domena.mailpit_
mailpit_proxy_port: 80
lub Nginx:
mailpit_proxy_nginx: true
mailpit_proxy_domain: _twoja.domena.mailpit_
mailpit_proxy_port: 80
Przykładowy Playbook
- hosts: mailpit
roles:
- { role: andrelohmann.mailpit }
Rozwój roli
Cel specjalny
Ta repozytorium wspiera następujące funkcje w celu rozwoju roli:
- yamllint
- ansible-lint
- testy molekul
- akcje GitHub
- automatyczna aktualizacja wersji
- aktualizacja ansible-galaxy
- wyświetlanie statusu kompilacji
- testy w Vagrant (do celów deweloperskich)
- testy z molekułą (wewnątrz lub na zewnątrz Vagranta)
- testy w kontenerach Docker
- testy i rozwój w VSCode
Wymagania wstępne
- Zainstalowane Virtualbox + Vagrant (tylko w razie potrzeby testowania roli przy użyciu Vagranta)
- Docker Desktop
- Visual Studio Code + zespół rozszerzeń do zdalnego dostępu (zależności są zdefiniowane w pliku .vscode/extensions.json)
Ustawienie do rozwoju
Ta rola ansible jest rozwijana przy użyciu molekuły do testów. Jej rozwój opiera się na Visual Studio Code i odpowiadającym kontenerze deweloperskim, który rozwiązuje wszystkie zależności związane z niezbędnymi narzędziami (ansible, linter, molekuła).
Rola będzie testowana na dwóch kontenerach Ubuntu (focal, jammy).
Aby uruchomić kontenery testowe molekuły z wewnątrz kontenera deweloperskiego, socket Dockera musi być zamontowany do kontenera deweloperskiego.
Ważne foldery i pliki
.devcontainer
- Definiuje Dockerfile dla kontenera deweloperskiego
- Konfiguruje uruchamianie kontenera deweloperskiego (np. bind mount socket Docker)
molecule/default/Dockerfile.js
- Używany jako szablon dla wszystkich platform zdefiniowanych w molecule/default/molecule.yml
- Przygotowuje środowiska, aby wspierały usługi systemd (konieczne dla niektórych ról ansible działających na systemd)
- Instalowanie wszystkich wymagań do uruchomienia ansible w kontekście pochodnego kontenera
- Plik jest dostosowany do atrybutów platform w molecule/default/molecule.yml
- Aby uzyskać więcej informacji - zapoznaj się z dokumentacją molekuły.
Użytkowanie
Visual Studio Code
- Przejdź do głównego katalogu swojej roli i uruchom vscode
code .
- Z wewnątrz kontenera deweloperskiego możesz użyć następujących poleceń
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- Przejdź do głównego katalogu 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 budowania i wydania
Rola ansible definiuje zestaw workflow GitHub, które uruchamiają testy molekuły i zarządzanie wydaniami.
Zarządzanie wydaniami wymaga kilku ustawień.
Ochrona gałęzi master/main
- Ustawienia -> Gałęzie -> Dodaj regułę ochrony gałęzi
- Wzorowanie nazwy gałęzi -> main lub master (w zależności od twojej domyślnej gałęzi)
- Ochrona dopasowanych gałęzi -> zaznacz "Wymagaj zatwierdzenia prośby przed scaleniem"
- "Wymagaj zatwierdzeń" można indywidualnie ustalać według potrzeb
Przyznanie uprawnień do odczytu i zapisu dla GITHUB_TOKEN
- Ustawienia -> Akcje -> Ogólne -> Uprawnienia workflow -> uprawnienia do odczytu i zapisu
Wiadomości commitów
Wiadomości commitów powinny podążać za specjalnym formatem, aby osiągnąć aktualizację wersji semantycznej 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 absolutnie istotne, aby "BREAKING CHANGE: " zostało wymienione w drugiej+ linii. W przypadku wiadomości commitów jednolinijkowych aktualizacja głównej wersji będzie ignorowana.
Dodaj sekret GALAXY_API_KEY
- Zautoryzuj się przy użyciu swojego konta GitHub na https://galaxy.ansible.com/.
- Pobierz klucz API galaktyki 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 galaktyki jako wartości
Licencja
MIT
Informacje o autorze
© Andre Lohmann (i inni) 2024
https://github.com/andrelohmann
Kontakt do osoby odpowiedzialnej
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.mailpit