Ansible je nástroj pro automatizaci, konfiguraci a správu infrastruktury. Mé předchozí články představují Ansible a vysvětlují systémové role. V tomto článku předvedu konfiguraci Správce logických svazků (LVM) pomocí Ansible. Konfigurace LVM pomocí Ansible pomáhá správcům systému provádět jejich úkoly efektivněji a trávit méně času manuální prací. Můžete vytvořit Ansible playbook, který vytvoří oddíl a inicializuje LVM.
[ Také by se vám mohlo líbit: Úvod do Správce logických svazků ]
Přehled LVM
Jak víte, primární oddíl nelze rozšířit a zmenšit. Takový scénář může způsobit problémy, když potřebujete další místo na disku. Pomocí LVM můžete tento problém překonat, protože LVM umožňuje přidat a odebrat nový disk na logický svazek. LVM je součástí výchozí instalace Red Hat Enterprise Linux (RHEL) od RHEL 7.
Zde je několik základních věcí, kterým musíte před použitím LVM porozumět:
- PV —Fyzický svazek inicializovaný na disku, oddílu nebo souboru zpětné smyčky. Když inicializujete PV, vytvoří štítek na začátku zařízení.
- VG —Skupina svazků je sbírka logických svazků (LV). Vytvoříte VG uvnitř PV.
- LV —Logický svazek je jako standardní oddíl na disku. V rámci jednoho VG můžete vytvořit více LV. Velikost LV můžete změnit podle požadovaného prostoru.
Vytvoření oddílu
V RHEL 8 vytvoříte oddíl pomocí Parted užitečnost. Rozešli se poskytuje flexibilitu při vytváření oddílu pomocí MS-DOS nebo oddílu GUID Partition Table (GPT). V Ansible můžete použít Parted modul pro rozdělení.
V tomto příkladu zvažte /dev/vdb
jako název disku. Vytvořte dva oddíly o velikosti 1 GB. Jednoduše pomocí modulu Parted můžete vytvářet oddíly libovolné velikosti.
Příklad:
---
- 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
Spusťte tuto příručku pomocí:
$ ansible-playbook partition.yml
Můžete použít lsblk
příkaz ke kontrole, že oddíl nyní existuje.
Inicializace LVM a vytváření LV
Po vytvoření oddílu inicializujte LV. Inicializace vyžaduje, abyste nejprve vytvořili PV i VG. Použijte Ansible lvg modul k vytvoření PV a VG s velikostí fyzického rozsahu (PE). PE rozděluje VG na pevnou velikost. Ve výchozím nastavení je velikost PE 4 MB. Při vytváření VG můžete změnit výchozí velikost. Obecně platí, že větší velikost PE poskytuje lepší výkon.
Příklad:
- name: task for creating volume group
lvg:
vg: sample-vg
pvs: /dev/vdb1
pesize: 16
- name: Install lvm2 dependency
package:
name: lvm2
state: present
Další úkol vytvoří LV. lvol modul vytváří LV. Při vytváření LV dáváte možnosti, jako je název VG, velikost a název LV.
V tomto příkladu 2GB VG vytvoří první LV o velikosti 1GB.
Příklad:
- name: task for creating logical volume
lvol:
vg: sample-vg
lv: sample-lv
size: 1g
force: yes
Chcete-li použít tento vytvořený LV, musíte tento oddíl připojit do souborového systému. K tomuto LV pro ukládání dat máte přístup pouze vy. V Ansible použijte systém souborů moduly pro formátování libovolného blokového zařízení pomocí filesystem
. Po naformátování připojíte oddíl do libovolného adresáře. Můžete použít připojení modul v Ansible. Ujistěte se, že adresář (/data1
v tomto příkladu) existuje před spuštěním příručky.
Příklad:
- 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
Příklad: Celá příručka:
---
- 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
Spusťte tuto příručku a zkontrolujte, zda se vaše LV vytvoří, nebo použijte lvs
příkaz.
Pamatujte, že jednou z funkcí LVM je, že můžete zvětšit velikost LV. Ručně můžete použít lvextend
příkaz. V Ansible můžete použít lvol modul pro rozšíření velikosti sample-lv .
Příklad:
- 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
Pomocí lvextend
nebo lvol modul vám pomůže rozšířit váš LV. V tomto lvol objem, použijte resizefs
parametr pro zvětšení nepřipojeného souborového systému umístěného v zařízení.
Aby se zmenšila velikost LV, syntaxe je následující:
- 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
[ Potřebujete více o Ansible? Absolvujte bezplatný kurz technického přehledu od společnosti Red Hat. Ansible Essentials:Jednoduchost v technickém přehledu automatizace. ]
Zabalit
Tento článek vám ukázal, jak nakonfigurovat LVM pomocí jednoduché příručky Ansible. Namísto použití jednoduché příručky můžete vytvořit roli pomocí stejného procesu a modulů jako výše. Ansible vám pomůže omezit ruční úkoly a také zvýšit efektivitu konfigurace LVM. Použití metod popsaných v tomto článku zjednodušuje operace na více spravovaných uzlech.