Akrog.storage
Rôle Ansible de stockage
Le rôle Ansible de stockage est une abstraction indépendante des fournisseurs, offrant aux administrateurs d'infrastructure une automatisation pour les solutions de stockage et pour l'accès aux ressources provisionnées.
Le rôle de stockage inclut le support de plus de 80 pilotes de stockage en bloc par défaut, mais il peut aussi être élargi pour prendre en charge d'autres fournisseurs de stockage.
Grâce à cette abstraction, il est désormais possible d'écrire des playbooks réutilisables qui peuvent automatiser des tâches sur n'importe quelle baie de stockage supportée.
Cela permet de gérer et de consommer des volumes de stockage directement sur n'importe quelle infrastructure par le développeur ou le propriétaire de l'application depuis n'importe quelle instance Linux.
Le rôle fournira une abstraction pour plusieurs types de stockage :
- Stockage en bloc.
- Systèmes de fichiers partagés.
- Stockage d'objets.
Cas d'utilisation :
- Automatiser le provisionnement de volumes pour :
- Hôtes bare metal.
- Machines virtuelles gérées via le module virt Ansible.
- Machines virtuelles gérées sur oVirt, OpenStack et VMWare.
- Fournisseurs de cloud.
- Prendre des snapshots périodiques des volumes provisionnés.
- Utiliser un volume doré pour le provisionnement (clonage de volume).
- Redimensionner les volumes provisionnés.
- Définir la QoS pour les volumes provisionnés.
- Effectuer des migrations de volume entre les systèmes de backend.
Fonctionnalités
Le rôle de stockage prend actuellement en charge le stockage en bloc et a abstrait les opérations suivantes.
- Obtenir les stats du backend
- Créer des volumes
- Supprimer des volumes
- Étendre des volumes
- Attacher des volumes
- Détacher des volumes
Prise en main
Commençons par exécuter votre premier playbook de stockage.
L'exécution du playbook exemple installera des paquets sur le système et présentera un VG au système. Nous recommandons d'exécuter ces commandes dans une VM ou de changer la valeur de la variable IP pour l'IP d'une VM.
Après avoir configuré le VG LVM, le playbook créera un volume, l'attachera au nœud via iSCSI, affichera un message avec le périphérique où il a été attaché, le détachera et enfin supprimera le volume.
Pour exécuter le playbook, nous devrons d'abord installer le rôle.
$ ansible-galaxy install Akrog.storage
Une fois le rôle installé, nous pouvons procéder à son exécution.
Il existe plusieurs façons d'exécuter un playbook. Pour la simplicité, nous allons juste
illustrer comment l'exécuter sur l'hôte local en utilisant notre utilisateur et en supposant que nous avons
sshd
activé, notre propre ~/.ssh/id_rsa
dans le fichier ~/.ssh/authorized_keys
,
et que notre utilisateur peut exécuter des commandes sudo
sans mot de passe.
$ IP=127.0.0.1
$ cd ~/.ansible/roles/Akrog.storage/example
$ ansible-playbook -i $IP, lvm-backend.yml
Contrairement à la plupart des cas d'utilisation réels, notre exemple n'utilise pas un système de stockage réel. Le playbook crée d'abord un groupe de volumes LVM (VG) soutenu par un périphérique loop. En utilisant ce VG, nous pouvons créer des volumes et les exporter via iSCSI en utilisant la cible LIO.
Concepts
Un fournisseur est le module Ansible responsable de l'exécution des opérations sur le matériel de stockage. Chaque fournisseur doit prendre en charge au moins un matériel spécifique d'un fournisseur, mais il peut également en soutenir d'autres, comme le fait le fournisseur par défaut.
Pour exposer les fonctionnalités de ces fournisseurs, le rôle de stockage introduit le concept de backends. Un backend est construit en passant une configuration spécifique à un fournisseur afin de gérer un matériel de stockage spécifique.
Il existe deux types de nœuds dans le rôle de stockage, contrôleurs et consommateurs.
Les contrôleurs ont accès au réseau de gestion du stockage et savent comment se connecter à l'interface de gestion du matériel de stockage et le contrôler. Par exemple, pour créer et exporter un volume.
Les consommateurs n'ont besoin que d'un accès au réseau de données de stockage pour se connecter aux ressources que nous avons provisionnées. Par exemple, pour connecter un volume via iSCSI.
Pour plus d'informations sur l'utilisation et la configuration, consultez la documentation : https://ansible-storage.readthedocs.io/en/docs/
Storage management and consumption
ansible-galaxy install Akrog.storage