9.6判断主机组名

在每个客户端中都会有一个名为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
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    请登录后查看评论内容