9.用playbooke生成主机清单文件

使用playbook在所有主机组生成指定格式的文件
任务要求
将一个初始模板文件从 http://172.25.250.250/ansible2.8/fifiles/hosts.j2 下载到 /home/student/ansible
完成该模板,以便用它生成以下文件:针对每个清单主机包含一行内容,其格式与 /etc/hosts 相同创建名为 /home/student/ansible/hosts.yml 的 playbook,
它将使用此模板在 dev 主机组中的主机上生成文件 /etc/myhosts。
该 playbook 运行后,dev 主机组中主机上的文件/etc/myhosts 应针对每个受管主机包含一行内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.24.1.6 servera.lab1.example.com servera
172.24.1.7 serverb.lab1.example.com serverb
172.24.1.8 serverc.lab1.example.com serverc
172.24.1.9 serverd.lab1.example.com serverd 172.24.1.10 bastion.lab1.example.com bastion
 

[student@workstation ansible]$ wget http://172.25.250.250/ansible2.8//hosts.j2 
[student@workstation ansible]$ vim hosts.j2 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
## 考试的时候只有上面的内容,没有下面的内容
#考试需要添加一下内容
{% for host in groups.all %}
{{ hostvars[host].ansible_enp1s0.ipv4.address }}{{ hostvars[host].ansible_fqdn }} {{ hostvars[host].ansible_hostname }}
{% endfor %}
[student@workstation ansible]$ vim hosts.yml
---
## 先执行空的play,用来获取所有主机的内容
- name: gather facts
  hosts: all
## 使用template模块根据模板部署文件
- name: config myhosts
  hosts: dev 
  tasks:
    - template:
        src: hosts.j2 ## 模板源文件和playbook在同一目录下,则可以直接写文件名
        dest: /etc/myhosts

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晚睡晚起秦叁叁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值