详解ansible批量管理服务(2)
运行剧本
[root@m01 ansible_playbook]#ansible-playbook test_通知功能.yaml PLAY [172.16.1.41] *********************************************************************************** TASK [Gathering Facts] ******************************************************************************* ok: [172.16.1.41] TASK [boot server] *********************************************************************************** ok: [172.16.1.41] TASK [check server boot] ***************************************************************************** changed: [172.16.1.41] TASK [debug] ***************************************************************************************** ok: [172.16.1.41] => { "msg": [ "tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3708/rsync ", "tcp6 0 0 :::873 :::* LISTEN 3708/rsync " ] } PLAY RECAP ******************************************************************************************* 172.16.1.41 : ok=4 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
1.6.3 剧本信息判断功能
nfs服务客户端三台主机 centos7 10.0.0.7、centos6 10.0.0.8、centos7 10.0.0.9 此时在批量启动的时候需要进行判断,因为centos6,centos7启动命令不一样 判断的格式 - hosts: nfs_client tasks: - name: boot centos7 nfs shell: systemctl start nfs 判断: 如果是centos7 ??? - name: boot centos6 nfs shell: /etc/init.d/nfs start 判断: 如果是centos6 ??? setup模块:收集远程主机信息 语法: [root@m01 ansible_playbook]#ansible 172.16.1.41 -m setup -a "filter=ansible_hostname" 172.16.1.41 | SUCCESS => { "ansible_facts": { "ansible_hostname": "backup", "discovered_interpreter_python": "/usr/bin/python" }, "changed": false } # filter 过滤 筛选
实现收集子信息的方法
问题: 获取主机信息,以及子信息
方法一:
- hosts: rsync tasks: - name: touch file file: path=/etc/oldboy01.txt state=touch when: (ansible_eth1.ipv4.address == "172.16.1.41")
方法二:
- hosts: rsync tasks: - name: touch file file: path=/etc/oldboy01.txt state=touch when: (ansible_eth1["ipv4"]["address"] == "172.16.1.41")
setup模块常用来收集的信息
根据 ip 地址进行判断创建目录
[root@m01 ansible_playbook]#vim test_判断功能.yaml - hosts: nfs_client tasks: - name: create file for 41 host file: path=/tmp/172.16.1.41 state=directory when: (ansible_hostname == "backup") - name: create file for 7 host file: path=/tmp/172.16.1.7 state=directory when: (ansible_hostname == "web01")
内容版权声明:除非注明,否则皆为本站原创文章。