GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation d'Ansible pour automatiser les configurations du gestionnaire de volumes logiques

Ansible est un outil d'automatisation, de configuration et de gestion d'infrastructure. Mes articles précédents présentent Ansible et expliquent les rôles système. Dans cet article, je montre comment configurer le gestionnaire de volumes logiques (LVM) à l'aide d'Ansible. La configuration de LVM avec Ansible aide les administrateurs système à effectuer leurs tâches plus efficacement et à passer moins de temps à travailler manuellement. Vous pouvez créer un playbook Ansible qui crée une partition et initialise LVM.

[ Vous pourriez également apprécier :  Introduction au gestionnaire de volumes logiques ]

Présentation de LVM

Comme vous le savez, la partition principale ne peut pas être étendue et réduite. Un tel scénario peut créer des problèmes lorsque vous avez besoin d'espace supplémentaire sur un disque. En utilisant LVM, vous pouvez surmonter ce problème car LVM vous permet d'ajouter et de supprimer un nouveau disque sur un volume logique. LVM fait partie de l'installation par défaut de Red Hat Enterprise Linux (RHEL) depuis RHEL 7.

Voici quelques éléments essentiels que vous devez comprendre avant d'utiliser LVM :

  • PV — Volume physique initialisé sur le disque, la partition ou le fichier de bouclage. Lorsque vous initialisez un PV, il crée une étiquette au démarrage de l'appareil.
  • VG —Volume Group est une collection de volumes logiques (LV). Vous créez un VG à l'intérieur d'un PV.
  • LV —Le volume logique est comme une partition standard sur un disque. Vous pouvez créer plusieurs LV dans un seul VG. Vous pouvez redimensionner un LV en fonction de l'espace requis.

Création d'une partition

Dans RHEL 8, vous créez une partition à l'aide de Parted utilitaire. Séparé vous offre la possibilité de créer une partition à l'aide de MS-DOS ou d'une partition de table de partition GUID (GPT). Dans Ansible, vous pouvez utiliser l'élément Parted module de partitionnement.

Dans cet exemple, considérez /dev/vdb comme nom de disque. Créez deux partitions de 1 Go. En utilisant simplement le module Parted, vous pouvez créer des partitions de n'importe quelle taille.

Exemple :

---
- name: playbook for simple 1 GB partition
  hosts: vm1.example.com
  become: true
  tasks:
    - name: create partition
      parted:
        device: /dev/vdb
        number: 1
        flags: [ lvm ]
        state: present
        part_end: 2GB

Exécutez ce playbook en utilisant :

$ ansible-playbook partition.yml

Vous pouvez utiliser le lsblk commande pour vérifier que la partition existe maintenant.

Initialisation de LVM et création de  LV

Après avoir créé la partition, initialisez le fichier LV. Pour initialiser, vous devez d'abord créer à la fois un PV et un VG. Utiliser le lvg Ansible module pour créer un PV et un VG avec une taille d'étendue physique (PE). Le PE divise le VG en une taille fixe. Par défaut, la taille du PE est de 4 Mo. Vous pouvez modifier la taille par défaut lors de la création du VG. Généralement, une taille de PE plus grande offre de meilleures performances.

Exemple :

- name: task for creating volume group
  lvg:
      vg: sample-vg
      pvs: /dev/vdb1
      pesize: 16

- name: Install lvm2 dependency
  package:
    name: lvm2
    state: present

La tâche suivante crée le LV. Le lvol module crée des LV. Lors de la création d'un LV, vous donnez des options telles que le nom du VG, la taille et un nom de LV.

Dans cet exemple, un VG de 2 Go crée le premier LV d'une taille de 1 Go.

Exemple :

- name: task for creating logical volume
  lvol:
      vg: sample-vg
      lv:  sample-lv
      size: 1g
      force: yes

Pour utiliser ce LV créé, vous devez monter cette partition dans le système de fichiers. Vous seul pouvez accéder à ce LV pour stocker des données. Dans Ansible, utilisez le système de fichiers modules pour formater n'importe quel périphérique bloc avec filesystem . Après le formatage, vous montez la partition dans n'importe quel répertoire. Vous pouvez utiliser le montage module dans Ansible. Assurez-vous que le répertoire (/data1 dans cet exemple) existe avant d'exécuter le playbook.

Exemple :

 - name: Create directory data1 if does not exist
      file:
        path: /data1
        state: directory
        mode: '0755'
- name: format the xfs filesystem
  filesystem:
    fstype: xfs
    dev: /dev/sample-vg/sample-lv
- name: mount the lv on /data1
  mount:
    path: /data1
    src: /dev/sample-vg/sample-lv
    fstype: xfs
    state: mounted


Exemple :  Tout le playbook : 

---
- name: playbook for simple 1 GB partition
  hosts: localhost
  become: true
  tasks:
    - name: create partition
      parted:
        device: /dev/nvme1n1
        number: 1
        flags: [ lvm ]
        state: present
        part_end: 2GB

    - name: Install lvm2 dependency
      package:
        name: lvm2
        state: present

    - name: task for creating volume group
      lvg:
          vg: sample-vg
          pvs: /dev/nvme1n1p1
          pesize: 16

    - name: task for creating logical volume
      lvol:
          vg: sample-vg
          lv:  sample-lv
          size: 1g
          force: yes

    - name: Create directory data1 if does not exist
      file:
        path: /data1
        state: directory
        mode: '0755'

    - name: format the xfs filesystem
      filesystem:
        fstype: xfs
        dev: /dev/sample-vg/sample-lv

    - name: mount the lv on /data1
      mount:
        path: /data1
        src: /dev/sample-vg/sample-lv
        fstype: xfs
        state: mounted

Exécutez ce playbook et vérifiez si votre LV est créé ou utilisez le lvs commande.

N'oubliez pas que l'une des fonctionnalités de LVM est que vous pouvez étendre la taille du LV. Manuellement, vous pouvez utiliser le lvextend commande. Dans Ansible, vous pouvez utiliser le lvol module pour étendre la taille de sample-lv .

Exemple :

- name: Extend the logical volume to take all remaining space of the PVs and resize the underlying filesystem
  lvol:
      vg: sample-vg
      lv: sample-lv
      size: 2g
      resizefs: true
      force: yes

Utilisation de lvextend commande ou le lvol module vous aide à étendre votre LV. Dans ce lvol volume, utilisez le resizefs paramètre pour agrandir un système de fichiers non monté situé sur le périphérique.

Afin de réduire la taille d'un LV, la syntaxe est la suivante :

- name: Extend the logical volume to take all remaining space of the PVs and resize the underlying filesystem
      lvol:
          vg: sample-vg
          lv: sample-lv
          size: 700m
          shrink: yes
          force: yes

[ Besoin d'en savoir plus sur Ansible ? Suivez un cours de présentation technique gratuit de Red Hat. Ansible Essentials :Présentation technique de la simplicité dans l'automatisation. ] 

Conclusion

Cet article vous a montré comment configurer LVM à l'aide d'un simple playbook Ansible. Plutôt que d'utiliser un simple playbook, vous pouvez créer un rôle , en utilisant le même processus et les mêmes modules que ci-dessus. Ansible vous aide à réduire les tâches manuelles et à augmenter l'efficacité de la configuration LVM. L'utilisation des méthodes décrites dans cet article simplifie les opérations sur plusieurs nœuds gérés.


Linux
  1. Comment créer un utilisateur Linux avec Ansible

  2. Partition primaire vs logique ?

  3. Comment réduire un volume physique ?

  4. Configuration LVM :opérations/utilitaires de volume logique (LV)

  5. Comment récupérer un volume logique (LV) supprimé dans LVM à l'aide de vgcfgrestore

Gestionnaire de volume logique (LVM) par rapport au partitionnement standard sous Linux

Comment automatiser les redémarrages du système à l'aide du module de redémarrage Ansible

Comment automatiser l'installation et le déploiement de Podman à l'aide d'Ansible

Gestion des volumes logiques

Comment créer une partition à l'aide de la commande "parted"

Quels sont les avantages du gestionnaire de volumes logiques