创建一个名为 /home/student/ansible/hwreport.yml 的 playbook,
它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt:
任务要求
输出文件 /root/hwreport.txt
hostname: inventoryhostname
mem: memory_in_MB
bios: BIOS_version
vda: disk_vda_size
vdb: disk_vdb_size
输出文件中的每一行含有一个 key=value 对。
playbook 应当从 http://content.example.com/fifiles/hwreport.empty 下载文件,并将它保存为/root/hwreport.txt
使用正确的值修改 /root/hwreport.txt
如果硬件项不存在,相关的值应设为NONE
[student@workstation ansible]$ vim hwreport.yml
---
- name: Get hwreport info
hosts: all
tasks:
- name: Create report file
get_url:
url: http://content.example.com/files/hwreport.empty
dest: /root/hwreport.txt
- name: Get inventory_hostname
replace:
path: /root/hwreport.txt
regexp: 'inventoryhostname'
replace: '{{ inventory_hostname }}'
- name: Get memory total size
replace:
path: /root/hwreport.txt
regexp: 'memory_in_MB'
replace: "{{ ansible_memtotal_mb | string}}" ## 内存大小是个数值,替换成字符串进行输出
- name: Get bios version
replace:
path: /root/hwreport.txt
regexp: 'BIOS_version'
replace: "{{ ansible_bios_version }}"
- name: Get disk vda size
replace:
path: /root/hwreport.txt
regexp: 'disk_vda_size'
replace: "{{ ansible_devices.vda.size if ansible_devices.vda is defined else 'NONE' }}" ## 对变量是否存在进行条件判断
- name: Get disk vdb size
replace:
path: /root/hwreport.txt
regexp: 'disk_vdb_size'
replace: "{{ ansible_devices.vdb.size if ansible_devices.vdb is defined else 'NONE' }}"
[student@workstation ansible]$ ansible-playbook hwreport.yml