GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de Ansible para automatizar configuraciones de Logical Volume Manager

Ansible es una herramienta de automatización, configuración y administración de infraestructura. Mis artículos anteriores presentan Ansible y explican las funciones del sistema. En este artículo, demuestro cómo configurar Logical Volume Manager (LVM) usando Ansible. La configuración de LVM con Ansible ayuda a los administradores de sistemas a realizar sus tareas de manera más eficiente y a dedicar menos tiempo al trabajo manual. Puede crear un libro de jugadas de Ansible que cree una partición e inicialice LVM.

[ También te puede interesar: Introducción a Logical Volume Manager ]

Descripción general de LVM

Como sabe, la partición primaria no se puede extender ni reducir. Tal escenario puede crear problemas cuando necesita espacio adicional en un disco. Con LVM, puede superar este problema porque LVM le permite agregar y eliminar un disco nuevo en un volumen lógico. LVM es parte de la instalación predeterminada de Red Hat Enterprise Linux (RHEL) desde RHEL 7.

Aquí hay algunos elementos esenciales que debe comprender antes de usar LVM:

  • VP :volumen físico inicializado en disco, partición o archivo de bucle invertido. Cuando inicializa un PV, crea una etiqueta al inicio del dispositivo.
  • VG —Volume Group es una colección de volúmenes lógicos (LV). Creas un VG dentro de un PV.
  • LV —El volumen lógico es como una partición estándar en un disco. Puede crear múltiples LV dentro de un solo VG. Puede cambiar el tamaño de un LV según el espacio requerido.

Creación de una partición

En RHEL 8, crea una partición usando el Parted utilidad. Separados le brinda la flexibilidad de crear una partición utilizando MS-DOS o una partición de tabla de particiones GUID (GPT). En Ansible, puede usar el Parted módulo para particionar.

En este ejemplo, considere /dev/vdb como el nombre del disco. Cree dos particiones de 1 GB. Simplemente usando el módulo Parted, puede crear particiones de cualquier tamaño.

Ejemplo:

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

Ejecute este libro de jugadas usando:

$ ansible-playbook partition.yml

Puedes usar el lsblk Comando para verificar que la partición ahora existe.

Inicializando LVM y creando  LVs

Después de crear la partición, inicialice el LV. Para inicializar, primero debe crear un PV y un VG. Use Ansible lvg módulo para crear un PV y un VG con un tamaño de extensiones físicas (PE). El PE divide el VG en un tamaño fijo. De forma predeterminada, el tamaño del PE es de 4 MB. Puede cambiar el tamaño predeterminado mientras crea el VG. Por lo general, un tamaño de PE más grande proporciona un mejor rendimiento.

Ejemplo:

- 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 siguiente tarea crea el LV. El vol módulo crea LV. Al crear un LV, ofrece opciones como el nombre de VG, el tamaño y un nombre de LV.

En este ejemplo, un VG de 2 GB crea el primer LV con un tamaño de 1 GB.

Ejemplo:

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

Para usar este LV creado, debe montar esa partición dentro del sistema de archivos. Solo usted puede acceder a este LV para almacenar datos. En Ansible, use el sistema de archivos módulos para formatear cualquier dispositivo de bloque con filesystem . Después de formatear, monta la partición en cualquier directorio. Puedes usar el montaje módulo en Ansible. Asegúrate de que el directorio (/data1 en este ejemplo) existe antes de ejecutar el libro de jugadas.

Ejemplo:

 - 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


Ejemplo:  Guía completa: 

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

Ejecute este libro de jugadas y verifique si se crea su LV o use el lvs comando.

Recuerda que una de las características de LVM es que puedes ampliar el tamaño del LV. Manualmente, puede usar el lvextend dominio. En Ansible, puede usar el lvol módulo para ampliar el tamaño de sample-lv .

Ejemplo:

- 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 el lvextend comando o lvol El módulo te ayuda a ampliar tu LV. En este lvol volumen, utilice resizefs parámetro para ampliar un sistema de archivos desmontado ubicado en el dispositivo.

Para reducir el tamaño de un LV, la sintaxis es la siguiente:

- 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

[ ¿Necesita más información sobre Ansible? Realice un curso gratuito de descripción técnica de Red Hat. Ansible Essentials:descripción técnica de la simplicidad en la automatización. ] 

Terminar

Este artículo le mostró cómo configurar LVM usando un libro de jugadas simple de Ansible. En lugar de usar un libro de jugadas simple, podría crear un rol , usando el mismo proceso y módulos que el anterior. Ansible lo ayuda a reducir las tareas manuales y a aumentar la eficiencia de la configuración de LVM. El uso de los métodos descritos en este artículo simplifica las operaciones en varios nodos administrados.


Linux
  1. Cómo crear un sistema de archivos en una partición o volumen lógico de Linux

  2. Máquinas virtuales multipaso mediante el uso de Ansible

  3. Cómo crear un usuario de Linux usando Ansible

  4. Partición primaria vs lógica?

  5. Cómo reducir un volumen LVM en Ubuntu

Administrador de volúmenes lógicos (LVM) versus partición estándar en Linux

Cómo automatizar reinicios del sistema usando el módulo de reinicio de Ansible

Cómo automatizar la instalación y la implementación de Podman con Ansible

Gestión de volúmenes lógicos

Cómo crear una partición usando el comando "partid"

¿Cuáles son los beneficios del Administrador de volúmenes lógicos?