andrelohmann.maxmind

maxmind

Dernier test

Contenu

Utilisez ce rôle pour installer geoip et la base de données maxmind.

Un compte maxmind est nécessaire. Pour créer un compte chez maxmind, suivez ces liens :

Exigences

Ce rôle nécessite Ubuntu.

Variables du rôle

Définissez l’account_id, la license_key et les identifiants des éditions.

maxmind_account_id: __VOTRE_ID_DE_COMPTE__
maxmind_license_key: __VOTRE_CLÉ_DE_LICENCE__
maxmind_edition_ids: GeoLite2-ASN GeoLite2-City GeoLite2-Country
maxmind_geoipupdate_run: true # exécute geoipupdate pendant le processus d'installation
maxmind_geoipupdate_cron: true # crée un job cron pour exécuter régulièrement geoipupdate

Exemple de Playbook

- hosts: maxmind
  roles:
     - { role: andrelohmann.maxmind }

Développement du rôle

Objectif spécial

Ce dépôt prend en charge les fonctionnalités suivantes pour le développement du rôle :

  • yamllint
  • ansible-lint
  • test moleculaire
  • action github
  • mise à jour de version automatique
  • mise à jour d'ansible-galaxy
  • affichage de l'état de construction
  • test dans vagrant (à des fins de développement)
  • test avec molécule (dans ou hors de vagrant)
  • test contre un conteneur docker
  • test et développement dans vscode

Prérequis

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

  • Virtualbox + Vagrant installé (nécessaire uniquement si le rôle doit être également testé avec vagrant)
  • Docker Desktop
  • VisualStudioCode + pack d'extensions à distance (les dépendances sont définies dans .vscode/extensions.json)

Configuration de développement

Ce rôle ansible est développé en utilisant molecule pour les tests. Son développement est basé sur Visual Studio Code et un conteneur de développement correspondant, résolvant toutes les dépendances d'outils nécessaires (ansible, linter, molecule).

Le rôle sera testé sur Ubuntu Jammy.

Pour démarrer les conteneurs de test moleculaire depuis le conteneur de développement, le socket Docker doit être monté dans le conteneur de développement.

Dossiers et fichiers importants

.devcontainer
  • Définit le Dockerfile pour le conteneur de développement.
  • Configure le démarrage du conteneur de développement (par exemple, monter le socket Docker).
molecule/default/Dockerfile.js
  • Utilisé comme modèle pour toutes les plateformes définies dans molecule/default/molecule.yml.
  • Prépare les environnements pour soutenir les services systemd (nécessaire pour certains rôles ansible agissant sur systemd).
  • Installe toutes les exigences pour exécuter ansible contre le conteneur dérivé.
  • Le fichier est aligné avec les attributs des plateformes dans molecule/default/molecule.yml.
  • Pour plus d'informations, consultez la documentation de molecule.

Utilisation

Visual Studio Code

  • Changez au répertoire racine de votre rôle et lancez vscode
code .
  • Depuis le conteneur de développement, vous pouvez utiliser les commandes suivantes
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • Changez au répertoire racine de votre rôle.
  • Changez au dossier vagrant.
  • Démarrez et entrez la machine vagrant.
vagrant up
vagrant ssh
  • Changez au dossier du rôle.
cd /etc/ansible/roles/ansible-role- [tab]
  • Maintenant, vous pouvez exécuter tous les tests.
yamllint .
ansible-lint .
molecule create
molecule test

Processus de construction et de publication

Le rôle ansible définit un ensemble de workflows github pour exécuter des tests moléculaires et la gestion des versions.

La gestion des versions nécessite quelques paramètres.

Protection de la branche principale

  • Paramètres -> Branches -> Ajouter une règle de protection de branche.
  • Nom du motif de ramification -> main ou master (selon votre branche par défaut).
  • Protéger les branches correspondantes -> cochez "Exiger une demande de tirage avant de fusionner".
  • "Exiger des approbations" peut être géré individuellement selon les besoins.

Donner des permissions de lecture et d'écriture à GITHUB_TOKEN

  • Paramètres -> Actions -> Général -> Permissions de workflow -> permissions de lecture et d'écriture.

Messages de validation

Les messages de validation doivent suivre un format spécial pour obtenir une mise à jour de version sémantique de correctif, mineure ou majeure.

correctif

0.0.x

fix(single_word): description
mineure

0.x.0

feat(single_word): description
majeure

x.0.0

perf(single_word): description
CHANGE RAPPORT DÉLÉTÉRANTE : description du changement majeur

Il est absolument important que "CHANGE RAPPORT DÉLÉTÉRANTE : " soit mentionné dans la ligne suivante. Sur les messages de validation en une seule ligne, la mise à jour majeure sera ignorée.

Ajouter le secret GALAXY_API_KEY

  • Authentifiez-vous avec votre compte github sur https://galaxy.ansible.com/.
  • Récupérez la clé d'API galaxy dans Préférences -> Clé API.
  • Ouvrez votre dépôt de rôle github.
  • Paramètres -> Secrets et variables -> Actions -> Nouveau secret de dépôt.
  • Utilisez "GALAXY_API_KEY" comme clé et la clé d'API galaxy copiée comme valeur.

Licence

MIT

Informations sur l'auteur

© Andre Lohmann (et d'autres) 2024

https://github.com/andrelohmann

Contact du responsable

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
À propos du projet

ansible galaxy role to install maxmind geoip database

Installer
ansible-galaxy install andrelohmann.maxmind
Licence
mit
Téléchargements
112
Propriétaire