ceuser@deyu:~/ansible_pb$ wget http://dy.csie.cyut.edu.tw/materials/report1.orig
ceuser@deyu:~/ansible_pb$ cat report1.orig # Variables report HOST=inventoryhostname BIOS=BIOS_version VDA_SIZE=disk_vda_size VDC_SIZE=disk_vdc_size OS=os_family
ansible_devices.vdc.size 不會有定義,執行腳本會報錯無法完成。所以 value 設定使用 var|default('NONE'),當變數 var 不在在時,value 設定成預設值 'NONE',其他變數也都設定預設值 'NONE'。
ceuser@deyu:~/ansible_pb$ vi report1.yml
ceuser@deyu:~/ansible_pb$ cat report1.yml
---
- name: Report variables
hosts: test
tasks:
- ansible.builtin.copy:
src: report1.orig
dest: /root/report1.txt
- ansible.builtin.lineinfile:
path: /root/report1.txt
regexp: "^{{item.key}}="
line: "{{item.key}}={{item.value}}"
loop:
- { key: "HOST", value: "{{inventory_hostname | default('NONE')}}" }
- { key: "BIOS", value: "{{ansible_bios_version | default('NONE')}}" }
- { key: "VDA_SIZE", value: "{{ansible_devices.vda.size | default('NONE')}}" }
- { key: "VDC_SIZE", value: "{{ansible_devices.vdc.size | default('NONE')}}" }
- { key: "OS", value: "{{ansible_os_family | default('NONE')}}" }
ceuser@deyu:~/ansible_pb$ ansible-playbook report1.yml
PLAY [Report variables] ********************************************************
TASK [Gathering Facts] *********************************************************
ok: [kvm12]
TASK [ansible.builtin.copy] ****************************************************
changed: [kvm12]
TASK [ansible.builtin.lineinfile] **********************************************
changed: [kvm12] => (item={'key': 'HOST', 'value': 'kvm12'})
changed: [kvm12] => (item={'key': 'BIOS', 'value': '1.16.3-7.el10.alma.1'})
changed: [kvm12] => (item={'key': 'VDA_SIZE', 'value': '6.00 GB'})
changed: [kvm12] => (item={'key': 'VDC_SIZE', 'value': 'NONE'})
changed: [kvm12] => (item={'key': 'OS', 'value': 'RedHat'})
PLAY RECAP *********************************************************************
kvm12 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
VDC_SIZE=NONE。
ceuser@deyu:~/ansible_pb$ ansible test -m shell -a "cat /root/report1.txt" kvm12 | CHANGED | rc=0 >> # Variables report HOST=kvm12 BIOS=1.16.3-7.el10.alma.1 VDA_SIZE=6.00 GB VDC_SIZE=NONE OS=RedHat