GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di Ansible per automatizzare le configurazioni di Logical Volume Manager

Ansible è uno strumento di automazione, configurazione e gestione dell'infrastruttura. I miei articoli precedenti introducono Ansible e spiegano i ruoli di sistema. In questo articolo, mostro la configurazione di Logical Volume Manager (LVM) utilizzando Ansible. La configurazione di LVM con Ansible aiuta gli amministratori di sistema a svolgere le proprie attività in modo più efficiente ea dedicare meno tempo al lavoro manuale. Puoi creare un playbook Ansible che crea una partizione e inizializza LVM.

[ Potrebbe interessarti anche: Introduzione a Logical Volume Manager ]

Panoramica LVM

Come sapete, la partizione primaria non può essere estesa e ridotta. Tale scenario può creare problemi quando è necessario spazio aggiuntivo su un disco. Usando LVM, puoi superare questo problema perché LVM ti consente di aggiungere e rimuovere un nuovo disco su un volume logico. LVM fa parte dell'installazione predefinita di Red Hat Enterprise Linux (RHEL) a partire da RHEL 7.

Ecco alcuni elementi essenziali che devi comprendere prima di utilizzare LVM:

  • PV —Volume fisico inizializzato su disco, partizione o file di loopback. Quando si inizializza un PV, viene creata un'etichetta all'inizio del dispositivo.
  • VG —Volume Group è una raccolta di volumi logici (LV). Crei un VG all'interno di un PV.
  • LV —Il volume logico è proprio come una partizione standard su un disco. Puoi creare più LV all'interno di un singolo VG. Puoi ridimensionare un LV in base allo spazio richiesto.

Creazione di una partizione

In RHEL 8, crei una partizione usando Parted utilità. Separato ti dà la flessibilità di creare una partizione usando MS-DOS o una partizione GUID Partition Table (GPT). In Ansible, puoi utilizzare il Parted modulo per il partizionamento.

In questo esempio, considera /dev/vdb come nome del disco. Crea due partizioni da 1 GB. Utilizzando semplicemente il modulo Parted, puoi creare partizioni di qualsiasi dimensione.

Esempio:

---
- 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

Esegui questo playbook utilizzando:

$ ansible-playbook partition.yml

Puoi utilizzare il lsblk comando per verificare che la partizione ora esista.

Inizializzazione di LVM e creazione di  LV

Dopo aver creato la partizione, inizializza il LV. Per l'inizializzazione devi prima creare sia un PV che un VG. Usa Ansible lvg modulo per creare un PV e un VG con una dimensione Physical Extents (PE). Il PE divide il VG in una dimensione fissa. Per impostazione predefinita, la dimensione del PE è 4 MB. È possibile modificare la dimensione predefinita durante la creazione del VG. In genere, una dimensione PE più grande offre prestazioni migliori.

Esempio:

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

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

L'attività successiva crea il LV. Il lvol modulo crea LV. Quando crei un LV, fornisci opzioni come il nome VG, le dimensioni e un nome LV.

In questo esempio, un VG da 2 GB crea il primo LV con una dimensione di 1 GB.

Esempio:

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

Per utilizzare questo LV creato, devi montare quella partizione all'interno del filesystem. Solo tu puoi accedere a questo LV per la memorizzazione dei dati. In Ansible, usa il filesystem moduli per formattare qualsiasi dispositivo a blocchi con filesystem . Dopo la formattazione, monti la partizione in qualsiasi directory. Puoi utilizzare il supporto modulo in Ansible. Assicurati che la directory (/data1 in questo esempio) esiste prima di eseguire il playbook.

Esempio:

 - 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


Esempio:  Intero 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

Esegui questo playbook e controlla se il tuo LV viene creato o usa il lvs comando.

Ricorda che una delle caratteristiche di LVM è che puoi estendere la dimensione del LV. Manualmente, puoi usare lvextend comando. In Ansible, puoi usare lvol modulo per estendere la dimensione di sample-lv .

Esempio:

- 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

Usando lvextend comando o lvol modulo ti aiuta ad estendere il tuo LV. In questo lvol volume, usa il resizefs parametro per ingrandire un file system non montato che si trova sul dispositivo.

Per ridurre le dimensioni di un LV, la sintassi è la seguente:

- 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

[ Hai bisogno di più su Ansible? Partecipa a un corso di panoramica tecnica gratuito di Red Hat. Ansible Essentials:Semplicità nell'automazione Panoramica tecnica. ] 

Concludi

Questo articolo ti ha mostrato come configurare LVM usando un semplice playbook Ansible. Anziché utilizzare un semplice playbook, puoi creare un ruolo , utilizzando la stessa procedura e moduli di cui sopra. Ansible ti aiuta a ridurre le attività manuali e ad aumentare l'efficienza per la configurazione LVM. L'utilizzo dei metodi descritti in questo articolo semplifica le operazioni su più nodi gestiti.


Linux
  1. Come creare un filesystem su una partizione Linux o un volume logico

  2. Macchine virtuali multipass utilizzando Ansible

  3. Come creare un utente Linux usando Ansible

  4. Ridurre la radice utilizzando la gestione logica del volume?

  5. Come ridurre un volume LVM su Ubuntu

Logical Volume Manager (LVM) rispetto al partizionamento standard in Linux

Come automatizzare i riavvii del sistema utilizzando il modulo di riavvio di Ansible

Come automatizzare l'installazione e la distribuzione di Podman utilizzando Ansible

Gestione del volume logico

Come creare una partizione usando il comando "separato".

Quali sono i vantaggi del Logical Volume Manager