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 |