andrelohmann.mailpit

mailpit

Ostatni test

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

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

  • 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>
O projekcie

ansible galaxy role to install mailpit

Zainstaluj
ansible-galaxy install andrelohmann.mailpit
Licencja
mit
Pobrania
224
Właściciel