Logical Volume 생성 및 사용
다음 요구 사항에 맞춰 /home/greg/ansible/lv.yml 플레이북을 생성하고, 모든 관리 대상 노드에서 논리 볼륨을 생성 및 구성해 보았습니다.
- 논리 볼륨의 상태
- 논리 볼륨은 research 볼륨 그룹에 생성됩니다.
- 논리 볼륨 이름은 data입니다.
- 논리 볼륨 크기는 1500 MiB입니다.
- ext4 파일 시스템으로 논리 볼륨을 포맷합니다.
- 요청한 논리 볼륨 크기를 생성할 수 없을 경우, 오류 메시지를 표시하고 대신 크기를 800 MiB로 사용합니다.
Could not create logical volume of that size - 만약 볼륨 그룹 research가 존재하지 않으면 오류 메시지를 표시합니다:
Volume group does not exist - 논리 볼륨은 어떤 방법으로도 마운트하지 않습니다.
1. 플레이북 작성
lv.yml 플레이북을 작성하여 논리 볼륨을 생성하고 파일 시스템을 포맷합니다.
# 플레이북 파일 생성
vim /home/greg/ansible/lv.yml
다음과 같이 플레이북을 작성합니다.
---
- name: Create LVM
hosts: all
tasks:
- block:
- name: Create logical volume with 1500M size
community.general.lvol:
vg: research
lv: data
size: 1500
- name: Format logical volume with ext4
community.general.filesystem:
fstype: ext4
dev: /dev/research/data
rescue:
- name: Handle insufficient space error
ansible.builtin.debug:
msg: Could not create logical volume of that size
- name: Create logical volume with 800M size
community.general.lvol:
vg: research
lv: data
size: 800
- name: Format logical volume with ext4
community.general.filesystem:
fstype: ext4
dev: /dev/research/data
when: ansible_lvm.vgs.research is defined
- name: Handle missing volume group error
ansible.builtin.debug:
msg: Volume group does not exist
when: ansible_lvm.vgs.research is not defined
2. 플레이북 실행
작성한 플레이북을 실행합니다.
# 플레이북 실행
ansible-navigator run /home/greg/ansible/lv.yml -m stdout
3. 실행 결과
플레이북 실행 결과는 다음과 같습니다.
PLAY [Create LVM] ***************************************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************************************************
ok: [node3]
ok: [node5]
ok: [node4]
ok: [node2]
ok: [node1]
TASK [Create logical volume with 1500M size] *****************************************************************************************************************************************************************************************************************************************************************
skipping: [node1]
fatal: [node3]: FAILED! => {"changed": false, "err": " Volume group \"research\" has insufficient free space (31 extents): 47 required.\n", "msg": "Creating logical volume 'data' failed", "rc": 5}
changed: [node2]
changed: [node5]
changed: [node4]
TASK [Format logical volume with ext4] **************************************************************************************************************************************************************************************************************************************************************
skipping: [node1]
changed: [node5]
changed: [node4]
changed: [node2]
TASK [Handle insufficient space error] *****************************************************************************************************************************************************************************************************************************************************
ok: [node3] => {
"msg": "Could not create logical volume of that size"
}
TASK [Create logical volume with 800M size] ******************************************************************************************************************************************************************************************************************************************************************
changed: [node3]
TASK [Format logical volume with ext4] **************************************************************************************************************************************************************************************************************************************************************
changed: [node3]
TASK [Handle missing volume group error] ********************************************************************************************************************************************************************************************************************************************************************
skipping: [node2]
skipping: [node5]
ok: [node1] => {
"msg": "Volume group does not exist"
}
skipping: [node3]
skipping: [node4]
PLAY RECAP **********************************************************************************************************************************************************************************************************************************************************************
node1 : ok=2 changed=0 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
node2 : ok=3 changed=2 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
node3 : ok=4 changed=2 unreachable=0 failed=0 skipped=1 rescued=1 ignored=0
node4 : ok=3 changed=2 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
node5 : ok=3 changed=2 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
4. 검증
논리 볼륨 및 파일 시스템 생성 결과를 확인합니다.
# 논리 볼륨 확인
ansible all -m shell -a 'lvs'
# 파일 시스템 확인
ansible all -m shell -a 'blkid /dev/research/data'
'Project' 카테고리의 다른 글
Ansible 하드웨어 보고서 생성하기 (0) | 2025.02.25 |
---|---|
Ansible 웹서버 구축 (0) | 2025.02.25 |
Ansible 사용자 계정 생성하기 (0) | 2025.02.25 |
Ansible 설치 및 구성 (0) | 2025.02.25 |