實例–正常任務

  1. 腳本 blklvfs1.yml 使用 block - rescue - always 語法
    1. when: 限定只有 fieldwork vg 存在時才執行。
    2. 在 fieldwork 新增一個名為 test,大小 200M 的 lv
    3. rescue: 如果無法新增就改新增 100M 的 lv,且印出 "Could not create logical volume of that size"。
    4. always: 新增後將其格式化為 ext4。
    ceuser@deyu:~/ansible_pb$ vi blklvfs1.yml
    ceuser@deyu:~/ansible_pb$ cat blklvfs1.yml
    ---
    - hosts: dev
      tasks:
      - block:
        - name: Create a logical volume of 200m
          community.general.lvol:
            vg: fieldwork
            lv: test
            size: 200
    
        rescue:
        - ansible.builtin.debug:
            msg: Could not create logical volume of that size
        - name: Create a logical volume of 100m
          community.general.lvol:
            vg: fieldwork
            lv: test
            size: 100
    
        always:
        - name: Create a ext4
          community.general.filesystem:
            fstype: ext4
            dev: /dev/fieldwork/test
    
        when: ansible_lvm.vgs.fieldwork is defined
    
  2. ansible-playbook 執行 lvfs1.yml 腳本,正常新增 200M lv test,且成功格式化。
    ceuser@deyu:~/ansible_pb$ ansible-playbook blklvfs1.yml
    
    PLAY [dev] *********************************************************************
    
    TASK [Gathering Facts] *********************************************************
    ok: [kvm11]
    
    TASK [Create a logical volume of 200m] *****************************************
    changed: [kvm11]
    
    TASK [Create a ext4] ***********************************************************
    changed: [kvm11]
    
    PLAY RECAP *********************************************************************
    kvm11 : ok=3 changed=2  unreachable=0  failed=0  skipped=0  rescued=0  ignored=0
    
  3. 查看 kvm11 fieldwork VG 內有一名為 test 的 LV,大小為 200M,且檔案格式為 ext4。
    ceuser@deyu:~/ansible_pb$ ansible dev -m shell -a "lvs"
    kvm11 | CHANGED | rc=0 >>
      LV   VG    Attr    LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      test fieldwork -wi-a----- 200.00m
      root vg_kvm11  -wi-ao----   3.32g
      swap vg_kvm11  -wi-ao----  96.00m
    
  4. /dev/fieldwork/test 檔案格式為 ext4。
    ceuser@deyu:~/ansible_pb$ ansible dev -m shell -a "lsblk -f /dev/fieldwork/test"
    kvm11 | CHANGED | rc=0 >>
    NAME           FSTYPE FSVER LABEL UUID            FSAVAIL FSUSE% MOUNTPOINTS
    fieldwork-test ext4   1.0         b1b267cc-0814-4d80-98b0-3f3e7b62dcc7