GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von Ansible zur Automatisierung von Logical Volume Manager-Konfigurationen

Ansible ist ein Automatisierungs-, Konfigurations- und Infrastrukturverwaltungstool. Meine vorherigen Artikel stellen Ansible vor und erläutern Systemrollen. In diesem Artikel demonstriere ich die Konfiguration von Logical Volume Manager (LVM) mit Ansible. Die Konfiguration von LVM mit Ansible hilft Systemadministratoren, ihre Aufgaben effizienter auszuführen und weniger Zeit mit manueller Arbeit zu verbringen. Sie können ein Ansible-Playbook erstellen, das eine Partition erstellt und LVM initialisiert.

[Das könnte Ihnen auch gefallen: Einführung in den Logical Volume Manager]

LVM-Übersicht

Wie Sie wissen, kann die primäre Partition nicht erweitert und reduziert werden. Ein solches Szenario kann Probleme verursachen, wenn Sie zusätzlichen Speicherplatz auf einer Festplatte benötigen. Mit LVM können Sie dieses Problem überwinden, da Sie mit LVM eine neue Festplatte zu einem logischen Volume hinzufügen und entfernen können. LVM ist seit RHEL 7 Teil der Standardinstallation von Red Hat Enterprise Linux (RHEL).

Hier sind einige grundlegende Dinge, die Sie verstehen müssen, bevor Sie LVM verwenden:

  • PV – Physischer Datenträger, der auf Festplatte, Partition oder Loopback-Datei initialisiert wurde. Wenn Sie ein PV initialisieren, wird beim Start des Geräts ein Label erstellt.
  • VG – Datenträgergruppe ist eine Sammlung von logischen Datenträgern (LVs). Sie erstellen eine VG innerhalb eines PV.
  • LV – Das logische Volume ist genau wie eine Standardpartition auf einer Festplatte. Sie können mehrere LVs innerhalb einer einzigen VG erstellen. Sie können die Größe eines LV entsprechend dem erforderlichen Platz ändern.

Erstellen einer Partition

In RHEL 8 erstellen Sie eine Partition mithilfe von Parted Nützlichkeit. Getrennt gibt Ihnen die Flexibilität, eine Partition mit MS-DOS oder einer GUID-Partitionstabellen-(GPT-)Partition zu erstellen. In Ansible können Sie das Parted verwenden Modul zur Partitionierung.

Betrachten Sie in diesem Beispiel /dev/vdb als Datenträgername. Erstellen Sie zwei 1-GB-Partitionen. Mit dem Parted-Modul können Sie einfach Partitionen beliebiger Größe erstellen.

Beispiel:

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

Führen Sie dieses Playbook aus mit:

$ ansible-playbook partition.yml

Sie können den lsblk verwenden Befehl, um zu überprüfen, ob die Partition jetzt existiert.

LVM initialisieren und  LVs erstellen

Initialisieren Sie nach dem Erstellen der Partition den LV. Zum Initialisieren müssen Sie zuerst sowohl ein PV als auch eine VG erstellen. Verwenden Sie das Ansible-lvg -Modul zum Erstellen eines PV und einer VG mit einer Größe von Physical Extents (PE). Das PE unterteilt die VG in eine feste Größe. Standardmäßig beträgt die Größe des PE 4 MB. Sie können die Standardgröße beim Erstellen der VG ändern. Im Allgemeinen bietet eine größere PE-Größe eine bessere Leistung.

Beispiel:

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

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

Die nächste Aufgabe erstellt den LV. Das lvol Modul erstellt LVs. Beim Erstellen eines LV geben Sie Optionen wie VG-Name, Größe und einen LV-Namen an.

In diesem Beispiel erstellt eine 2-GB-VG das erste LV mit einer Größe von 1 GB.

Beispiel:

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

Um dieses erstellte LV zu verwenden, müssen Sie diese Partition innerhalb des Dateisystems einhängen. Nur Sie können auf dieses LV zum Speichern von Daten zugreifen. Verwenden Sie in Ansible das Dateisystem Module zum Formatieren beliebiger Blockgeräte mit filesystem . Nach dem Formatieren stellen Sie die Partition in einem beliebigen Verzeichnis bereit. Sie können das Reittier verwenden Modul in Ansible. Stellen Sie sicher, dass das Verzeichnis (/data1 in diesem Beispiel) existiert, bevor das Playbook ausgeführt wird.

Beispiel:

 - 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


Beispiel:  Ganzes 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

Führen Sie dieses Playbook aus und prüfen Sie, ob Ihr LV erstellt wird, oder verwenden Sie lvs Befehl.

Denken Sie daran, dass eines der Merkmale von LVM darin besteht, dass Sie die Größe des LV erweitern können. Manuell können Sie das lvextend verwenden Befehl. In Ansible können Sie das lvol verwenden Modul, um die Größe von sample-lv zu erweitern .

Beispiel:

- 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

Verwenden von lvextend Befehl oder das lvol Modul hilft Ihnen, Ihr LV zu erweitern. In diesem lvol verwenden Sie die resizefs Parameter zum Vergrößern eines nicht gemounteten Dateisystems, das sich auf dem Gerät befindet.

Um die Größe eines LV zu verkleinern, lautet die Syntax wie folgt:

- 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

[ Brauchen Sie mehr zu Ansible? Nehmen Sie an einem kostenlosen technischen Überblickskurs von Red Hat teil. Ansible Essentials:Einfachheit in der Automatisierung Technischer Überblick. ] 

Abschluss

Dieser Artikel hat Ihnen gezeigt, wie Sie LVM mit einem einfachen Ansible-Playbook konfigurieren. Anstatt ein einfaches Playbook zu verwenden, könnten Sie eine Rolle erstellen , wobei derselbe Prozess und dieselben Module wie oben verwendet werden. Ansible hilft Ihnen, manuelle Aufgaben zu reduzieren und die Effizienz der LVM-Konfiguration zu steigern. Die Verwendung der in diesem Artikel beschriebenen Methoden vereinfacht Vorgänge auf mehreren verwalteten Knoten.


Linux
  1. Virtuelle Multipass-Maschinen mithilfe von Ansible

  2. So erstellen Sie einen Linux-Benutzer mit Ansible

  3. Primäre vs. logische Partition?

  4. Lum – Wie erweitere ich eine Partition mit einem LVM und dem enthaltenen physischen Volume und dem logischen Volume?

  5. Wie verkleinere ich ein physisches Volume?

Logical Volume Manager (LVM) im Vergleich zur Standardpartitionierung unter Linux

So automatisieren Sie Systemneustarts mit dem Ansible-Neustartmodul

So automatisieren Sie die Podman-Installation und -Bereitstellung mit Ansible

Verwaltung logischer Volumes

So erstellen Sie eine Partition mit dem Befehl „parted“

Was sind die Vorteile des Logical Volume Managers