andrelohmann.maxmind
maxmind
Zawartość
Użyj tej roli, aby zainstalować geoip i bazę danych maxmind.
Konto maxmind jest konieczne. Aby stworzyć konto w maxmind, postępuj zgodnie z tymi linkami:
Wymagania
Ta rola wymaga systemu Ubuntu.
Zmienne roli
Ustaw id konta, klucz licencyjny i identyfikatory edycji
maxmind_account_id: __TWOJE_ID_KONTA__
maxmind_license_key: __TWÓJ_KLUCZ_LICENCYJNY__
maxmind_edition_ids: GeoLite2-ASN GeoLite2-City GeoLite2-Country
maxmind_geoipupdate_run: true # uruchom geoipupdate podczas instalacji
maxmind_geoipupdate_cron: true # utwórz zadanie cron do regularnego uruchamiania geoipupdate
Przykładowy playbook
- hosts: maxmind
roles:
- { role: andrelohmann.maxmind }
Rozwój roli
Cel specjalny
To repozytorium obsługuje następujące funkcje dla rozwoju roli:
- yamllint
- ansible-lint
- testy molekularne
- akcje githuba
- automatyczna aktualizacja wersji
- aktualizacja ansible-galaxy
- pokazywanie statusu budowy
- testowanie w vagrant (do celów rozwojowych)
- testowanie z molekularnymi (w lub poza vagrant)
- testowanie w kontenerze docker
- testowanie i rozwijanie w vscode
Wymagania wstępne
- Zainstalowany Virtualbox + Vagrant (konieczne tylko, jeśli rola ma być testowana również w vagrant)
- Docker Desktop
- Visual Studio Code + pakiet rozszerzeń remote (zależności zdefiniowane w .vscode/extensions.json)
Konfiguracja rozwoju
Ta rola ansible jest rozwijana z użyciem molekularnego testowania. Jej rozwój oparty jest na Visual Studio Code oraz odpowiednim kontenerze deweloperskim, rozwiązującym wszystkie zależności związane z niezbędnymi narzędziami (ansible, linter, molecule).
Rola będzie testowana na Ubuntu Jammy.
Aby uruchomić kontenery testowe molekuł z kontenera deweloperskiego, gniazdo dockera musi być zamontowane do kontenera deweloperskiego.
Ważne foldery i pliki
.devcontainer
- Definiuje Dockefile 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 do obsługi usług systemd (konieczne dla niektórych ról ansible działających na systemd)
- Instalacja wszystkich wymagań do uruchomienia ansible przeciwko powstałemu kontenerowi
- Plik jest zgodny z atrybutami platform w molecule/default/molecule.yml
- Aby uzyskać więcej informacji - zapoznaj się z dokumentacją molekuli
Użytkowanie
Visual Studio Code
- Przejdź do katalogu głównego swojej roli i uruchom vscode
code .
- Z wnętrza kontenera deweloperskiego możesz używać następujących poleceń
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- Przejdź do katalogu głównego swojej roli
- Wejdź 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 szereg przepływów pracy githuba do uruchamiania testów molekularnych i zarządzania wydaniami.
Zarządzanie wydaniami 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)
- Ochrona dopasowanych gałęzi -> zaznacz "Wymagaj pull requesta przed scaleniem"
- "Wymagane zatwierdzenia" można obsługiwać indywidualnie według potrzeb.
Przyznanie uprawnień do odczytu i zapisu dla GITHUB_TOKEN
- Ustawienia -> Akcje -> Ogólne -> Uprawnienia przepływu pracy -> uprawnienia do odczytu i zapisu.
Wiadomości zatwierdzeń
Wiadomości zatwierdzeń 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 to bardzo ważne, aby "BREAKING CHANGE: " było wspomniane w drugiej i kolejnych liniach. W przypadku jednoliniowych wiadomości commitowych, aktualizacja głównej wersji zostanie zignorowana.
Dodaj sekret GALAXY_API_KEY
- Zaloguj się na swoje konto github w https://galaxy.ansible.com/.
- Pobierz klucz API 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 klucz i skopiowany klucz API galaxy jako wartość.
Licencja
MIT
Informacje o autorze
© Andre Lohmann (i inni) 2024
https://github.com/andrelohmann
Kontakt z konserwatorem
- Andre Lohmann <lohmann.andre (at) gmail (dot) com>
ansible-galaxy install andrelohmann.maxmind