Dans le précédent guide, nous avions vu l’utilisation de l’inventaire dynamique
Ansible pour Proxmox. Dans ce guide,
nous verrons les modules Ansible pour proxmox. Je ne détaillerai pas le
provisionnement des instances de conteneurs ou de VM car je confie cette tâche à
Terraform. Je vais simplement documenter ce que nous pouvons faire avec chacun
des modules de la collection.
Configuration
Pour éviter d’exposer les informations d’authentification dans le playbook, je
vais chiffrer les données dans un fichier avec Ansible
Vault.
Le contenu du fichier proxmox_auth.yml :
On le chiffre avec ansible vault :
On fait de même avec le fichier d’inventaire :
Installation des pré-requis sur le node
Pour que les playbooks fonctionnent, il faut installer le module python
proxmoxer. Pourquoi ne pas le faire avec Ansible ? :
Pour simplifier le lancement, je crée un fichier de mot de passe :
~/vault_password_file. On peut lancer le playbook ainsi :
Récupérer des infos sur les domains
Pour obtenir des informations sur les utilisateurs, nous utiliserons le module
proxmox_domain_info :
On lance le playbook :
Récupérer des infos sur les users
Pour obtenir des informations sur les utilisateurs, nous utiliserons le module
proxmox_user_info :
On lance le playbook :
Récupérer les infos sur les groupes d’utilsateurs
Pour obtenir des informations sur les groupes, nous utiliserons le module
proxmox_group_info :
On lance le playbook :
Récupérer des infos sur les taches
Pour obtenir des informations sur les groupes, nous utiliserons le module
proxmox_group_info :
On lance le playbook :
Récupérer les infos sur le stockage
Pour obtenir des informations sur les stockages, nous utiliserons le module
proxmox_storage_info :
On lance le playbook :
Récupérer des infos sur des instances (lxc ou qemu)
Pour obtenir des informations sur une instance proxmox, nous utiliserons le
module proxmox_vm_info :
On peut filtrer sur le nom ou sur le type de node. Ici, on affiche toutes les
instances de type lxc. On exécute :
La gestion des instances
Le module proxmox permet de gérer des conteneurs
lxc. Il permet aussi de démarrer,
arrêter et redémarrer des instances selon les besoins.
Exemples :
La gestion des snapshots
Le module snap permet de gérer des snspashots.
Conclusion
Avec tous ces modules Ansible, on peut imaginer la mise au point de
workflows pour gérer des environnements provisionnés avec
Terraform. Si
vous ne voulez pas utiliser Terraform pour le provisionnement, vous pouvez
utiliser tous les autres modules pour créer vos ressources.