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.