andrelohmann.maxmind

maxmind

Ostatni test

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

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

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

ansible galaxy role to install maxmind geoip database

Zainstaluj
ansible-galaxy install andrelohmann.maxmind
Licencja
mit
Pobrania
112
Właściciel