红帽 RHCE8 认证考试:修改文件内容

题目描述

按照下方所述,创建一个名为 /home/greg/ansible/issue.yml 的 playbook :

  1. playbook 将在所有清单主机上运行;
  2. playbook 会将 /etc/issue 的内容替换为下方所示的一行文本:
  • dev 主机组中的主机上,这行文本显示 为:Development;
  • test 主机组中的主机上,这行文本显示 为:Test;
  • prod 主机组中的主机上,这行文本显示 为:Production.

详细解析

完成本题需要用到 Ansible 的 copy 模块。在 copy 模块中,可以使用 content 字段将指定的内容写入到受控端主机的指定位置。

此外,由于需要在不同的主机组中的主机上写入不同的内容,我们还需要在调用 copy 模块之前判断一下当前主机是否在指定的主机组中,这里的判断操作需要用到 when 关键字。

首先,按照题目要求,创建并编辑 playbook:

vim /home/greg/ansible/issue.yml

接着,在该 playbook 中写入如下内容:

---
- name:
  hosts: all
  tasks:
    - name:
      copy:
        content: "Development"
        dest: /etc/issue
      when: "inventory_hostname in groups.dev"
    - name:
      copy:
        content: "Test"
        dest: /etc/issue
      when: "inventory_hostname in groups.test"
    - name:
      copy:
        content: "Production"
        dest: /etc/issue
      when: "inventory_hostname in groups.prod"

[1]. 在上面的 playbook 中,有些内容是重复的,考试时完全可以复制粘贴相同的部分,以加快速度并提升准确率。但是,在平时练习时,还是尽可能全部自己敲一遍,不要粘贴复制;

运行该 playbook:

ansible-playbook /home/greg/ansible/issue.yml

如果上面的 playbook 在执行的时候没有什么问题,则可以使用如下命令作进一步的验证:

ansible dev,test,prod -m command -a "cat /etc/issue"

如果上述命令执行后返回的信息类似下面这样,则表明本题已经成功完成:

node2 | CHANGED | rc=0 >>
Test

node4 | CHANGED | rc=0 >>
Production

node3 | CHANGED | rc=0 >>
Production

node1 | CHANGED | rc=0 >>
Development

荒原之梦网全部内容均为原创,提供了涵盖考研数学基础知识、考研数学真题、考研数学练习题和计算机科学等方面,大量精心研发的学习资源。

豫 ICP 备 17023611 号-1 | 公网安备 - 荒原之梦 豫公网安备 41142502000132 号 | SiteMap
Copyright © 2017-2024 ZhaoKaifeng.com 版权所有 All Rights Reserved.

Copyright © 2024   zhaokaifeng.com   All Rights Reserved.
豫ICP备17023611号-1
 豫公网安备41142502000132号

荒原之梦 自豪地采用WordPress