Créer une collection Ansible Redis avec Molecule

Découvrez comment utiliser Ansible et Molecule pour créer rapidement et efficacement une collection personnalisée pour Redis.

Si vous êtes à la recherche d'un moyen pour automatiser l'installation et la configuration d'un cluster Redis, Ansible est un excellent choix. Dans cet article, nous allons voir comment créer une nouvelle collection Ansible pour l'installation et la configuration d'un cluster Redis en utilisant Ansible Galaxy et Molecule.

Ce dont vous avez besoin Avant de commencer, vous devez installer Ansible Galaxy et Molecule. Si vous ne les avez pas encore installés, voici comment procéder :

# Installation d'Ansible Galaxy
$ sudo apt-get install ansible-galaxy

# Installation de Molecule
$ pip install molecule

Étape 1 : Création de la collection Ansible

La première étape consiste à créer une nouvelle collection Ansible à l'aide de la commande ansible-galaxy collection init.

$ ansible-galaxy collection init my_redis_cluster

La commande créera une nouvelle collection nommée my_redis_cluster avec un ensemble de fichiers et de dossiers. Nous allons travailler principalement dans les dossiers roles et molecule de la collection.

Étape 2 : Création du rôle Ansible

La prochaine étape consiste à créer un nouveau rôle à l'intérieur de la collection. Nous allons utiliser Molecule pour créer la structure de notre rôle.

$ cd my_redis_cluster/roles
$ molecule init role -r redis_cluster

La commande ci-dessus créera un nouveau rôle nommé redis_cluster à l'intérieur de notre collection. La commande créera également une structure de dossier initiale pour le rôle.

Étape 3 : Écriture du code

Nous sommes maintenant prêts à écrire le code pour notre rôle. Ouvrez le fichier tasks/main.yml dans le dossier roles/redis_cluster et ajoutez la tâche suivante pour installer Redis :

- name: Install Redis
  apt:
    name: redis
    state: present

Ensuite, ouvrez le fichier defaults/main.yml et ajoutez les variables suivantes pour configurer Redis :

redis_port: 6379
redis_bind: 127.0.0.1

Dans le fichier templates/redis.conf.j2, ajoutez la configuration suivante :

port {{ redis_port }}
bind {{ redis_bind }}

Enfin, modifiez le fichier tasks/main.yml pour appliquer la configuration à Redis :

- name: Configure Redis
  template:
    src: redis.conf.j2
    dest: /etc/redis/redis.conf
  notify: Restart Redis

- name: Restart Redis
  service:
    name: redis
    state: restarted

Étape 4 : Tests avec Molecule

Il est maintenant temps de tester notre rôle avec Molecule. Nous allons utiliser la commande molecule test pour lancer les tests d'idempotence.

$ cd ../molecule/default
$ molecule test

La commande ci-dessus va créer une machine virtuelle, appliquer notre rôle Ansible et vérifier que tout fonctionne correctement. Si tout est OK, vous devriez voir un message comme celui-ci :

    PLAY RECAP *********************************************************************
    instance                   : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Conclusion

Dans cet article, nous avons vu comment créer une nouvelle collection Ansible pour l'installation et la configuration d'un cluster Redis en utilisant Ansible Galaxy et Molecule. Nous avons utilisé Ansible pour installer Redis et configuré les variables à l'aide de fichiers de configuration Jinja2. Nous avons également utilisé Molecule pour tester notre rôle Ansible et vérifier qu'il fonctionne correctement. Vous pouvez maintenant utiliser cette collection Ansible pour automatiser l'installation et la configuration de votre propre cluster Redis.

page element 2page element 1