ansible-playbook 变量

linux ansible-playbook 变量

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

2、创建一个名为 /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,实现需求。

创建hwreport.empty

[root@ansible ~]# su - student 
Last login: Mon Oct 24 16:34:21 CST 2022 on pts/0
[student@ansible ~]$ cd ansible/
[student@ansible ansible]$ vim hwreport.empty
hostname:inventoryhostname
mem:memory_in_MB
bios:BIOS_version
sda:disk_sda_size

创建 hwreport.yml

[student@ansible ansible]$ vim hwreport.yml
---
- name: exercise2
  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: memory 
      replace: 
        path: /root/hwreport.txt 
        regexp: 'memory_in_MB'
        replace: "{{ ansible_memtotal_mb | string }}"

    - 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 }}"

加密 playbook

[student@server ansible]$ vim pass
abcdefg
[student@ansible ansible]$ ansible-vault encrypt hwreport.yml --vault-id pass
Encryption successful

执行 playbook

[student@ansible ansible]$ ansible-playbook hwreport.yml --vault-id pass
PLAY [hwreport] ****************************************************************

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

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

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

TASK [men] *********************************************************************

changed: [node1]
changed: [node2]

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

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

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

验证

[root@node1 ~]# cat hwreport.txt 
hostname: node1
mem: 780
bios: 6.00
sda: 20.00 GB
[root@node2 ~]# cat hwreport.txt 
hostname: node2
mem: 1789
bios: 6.00
sda: 20.00 GB

你可能感兴趣的:(运维,linux,devops)