在每个客户端中都会有一个名为inventory_hostname的变量,用于定义每台主机所对应的Ansible服务的主机组名称,也就是/etc/ansible/hosts文件中所对应的分组信息,例如修改客户机test。
[root@dsrw ~]# vim /etc/issue
1.从Ansible常用模块名称及作用
可以看到copy模块的主要作用是新建、修改及复制文件,更符合当前的需要,此时便派上了用场,先查询copy模块的帮助信息。
[root@dsrw ~]# ansible-doc copy
EXAMPLES:
- name: Copy file with owner and permissions
copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: '0644'
- name: Copy file with owner and permission, using symbolic representation
copy:
src: /srv/myfiles/foo.conf
dest: /etc/foo.conf
owner: foo
group: foo
mode: u=rw,g=r,o=r
2.编写剧本,依据inventory_hostname变量中的值进行判断。
[root@dsrw ~]# vim issue.yml
---
- name: 修改文件内容
hosts: all
tasks:
- name: one
copy:
content: 'test'
dest: /etc/issue
when: "inventory_hostname in groups.test"
3.执行剧本文件
[root@dsrw ~]# ansible-playbook issue.yml
PLAY [修改文件内容] ******************************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.1.12]
TASK [one] *********************************************************************
changed: [192.168.1.12]
PLAY RECAP *********************************************************************
192.168.1.12 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后查看评论内容