ansible变量练习

作业:
在ansible节点中新建/home/student/ansible/hwreport.empty的文件,文件内容为
hostname: inventoryhostname
mem: memory_in_MB
bios: BIOS_version
sda: disk_sda_size

创建一个名为 /home/student/ansible/hwreport.yml的 playbook,它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt:

输出文件中的每一行含有一个 key=value 对。
您的 playbook 应当:
从 ansible节点中复制hwreport.empty文件到每台受控主机,并将它保存为/root/hwreport.txt
使用正确的值修改 /root/hwreport.txt
然后将/home/student/ansible/hwreport.yml这个playbook进行加密,加密的密码保存在/home/student/ansible/pass文件中,密码为abcdefg
执行该playbook,实现需求

[student@ansible ansible]$ vim hwreport.empty 

hostname: inventoryhostname
mem: memory_in_MB
bios: BIOS_version
sda: disk_sda_size


[student@ansible ansible]$ vim hwreport.yml

---
- name: hwreport
  hosts: all
  tasks:
    - name: copy hwreport.empty
      copy:
        src: /home/student/ansible/hwreport.empty
        dest: /root/hwreport.txt

    - name: inventoryhostname
      replace:
        path: /root/hwreport.txt
        regexp:  inventoryhostname
        replace: "{{ inventory_hostname }}"

    - name: men
      replace:
        path: /root/hwreport.txt
        regexp: memory_in_MB
        replace: "{{ ansible_memtotal_mb }}"

    - name: bios
      replace:
        path: /root/hwreport.txt
        regexp: BIOS_version
        replace: "{{ ansible_bios_version }}"

    - name: sda
      replace:
        path: /root/hwreport.txt
        regexp: disk_sda_size
        replace: "{{ ansible_devices.sda.size }}"


[student@ansible ansible]$ ansible-vault encrypt hwreport.yml
New Vault password: 
Confirm New Vault password: 
Encryption successful
[student@ansible ansible]$ echo abcdefg > /home/student/ansible/pass
[student@ansible ansible]$ ansible-playbook --vault-id /home/student/ansible/pass hwreport.yml 


[student@ansible ansible]$ ansible-playbook --vault-id /home/student/ansible/pass hwreport.yml 

PLAY [hwreport] *************************************************************************

TASK [Gathering Facts] ******************************************************************
ok: [node1]
ok: [node3]
ok: [node2]

TASK [copy hwreport.empty] **************************************************************
changed: [node2]
changed: [node1]
changed: [node3]

TASK [inventoryhostname] ****************************************************************
changed: [node1]
changed: [node2]
changed: [node3]

TASK [bios] *****************************************************************************
changed: [node2]
changed: [node3]
changed: [node1]

TASK [sda] ******************************************************************************
changed: [node2]
changed: [node1]
changed: [node3]

PLAY RECAP ******************************************************************************
node1                      : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
node2                      : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
node3                      : ok=5    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   


posted @ 2022-10-30 19:22  罗家龙  阅读(19)  评论(0编辑  收藏  举报