Ansible练习三

Ansible练习三

练习:

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@server ~]# su - student 
Last login: Thu Oct 27 03:33:21 CST 2022 on pts/1
[student@server ~]$ cd ansible/
[student@server ansible]$ vim hwreport.empty
[student@server ansible]$ cat hwreport.empty 
hostname:inventoryhostname
mem:memory_in_MB
bios:BIOS_version
sda:disk_sda_size

创建 hwreport.yml

[student@server ansible]$ vim hwreport.yml
[student@server ansible]$ cat 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: disk 
      replace: 
        path: /root/hwreport.txt 
        regexp: 'disk_sda_size' 
        replace: "{{ ansible_devices.sda.size }}" 

加密 playbook

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

执行 playbook

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

PLAY [exercise2] *******************************************************************************

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

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

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

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

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

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

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   
node3                      : ok=6    changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

验证

[student@server ansible]$ ansible-vault view hwreport.yml 
Vault password: 
---
- 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: disk 
      replace: 
        path: /root/hwreport.txt 
        regexp: 'disk_sda_size' 
        replace: "{{ ansible_devices.sda.size }}" 
(END)


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

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

[root@node3 ~]# cat hwreport.txt 
hostname:node3
mem:1789
bios:6.00
sda:20.00 GB
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 你可以使用ansible-playbook命令来运行项目练习中的剧本。根据引用\[1\]中的描述,你可以使用以下命令来运行剧本: ansible-playbook /home/devops/ansible/packages.yml 这个剧本将在dev、prod和test主机组中安装php和mariadb软件包,并在dev主机组中安装Development Tools包组,最后升级dev主机组中的所有软件包。另外,根据引用\[2\]中的描述,你还可以使用以下命令来运行另一个剧本: ansible-playbook /home/devops/ansible/internet.yml 这个剧本包含两个任务,第一个任务是在serverb.lab.example.com上安装firewalld、httpd、mariadb-server、php和php-mysqlnd软件包,并确保firewalld服务处于enabled和running状态,并允许访问httpd服务,同时确保httpd和Maria服务处于enabled和running状态。第二个任务是利用uri模块从控制节点测试serverb上运行web服务,检查返回状态代码200。所以,你可以使用以上命令来运行这两个剧本。 #### 引用[.reference_title] - *1* [ansible练习【2】](https://blog.csdn.net/JohnnyG2000/article/details/124188654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ansible-playbook(剧本)练习题](https://blog.csdn.net/weixin_56105279/article/details/128041261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ansible playbook练习](https://blog.csdn.net/m0_53122419/article/details/121535493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

seven凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值