使用Ansible-快速上手
ping模块简介:
该模块不使用ICMP ping,而是使用基于python的模块完成。
语法:
ansible 主机IP/或在清单中的名称 -m(表示选择模块) ping (表示使用ping模块)
清单文件:
[dev]
192.168.110.129
[prod]
192.168.110.132
运行ping命令:
[root@Controller ansible]# ansible dev -m ping
192.168.110.129 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
[root@Controller ansible]# ansible 192.168.110.129 -m ping
192.168.110.129 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
返回为pong则表示能与对端通信。
那么现在尝试ping一个不存在的地址:
[root@Controller ansible]# ansible 192.168.110.128 -m ping
[WARNING]: Could not match supplied host pattern, ignoring: 192.168.110.128
[WARNING]: No hosts matched, nothing to do
Ansible-doc -l:
常用于查看某个模块的具体使用方法:
现在有一个模块你记不清具体叫什么,那么就可以使用该命令来查看。
当然 -l 会列出所有的模块,不利于我们去定位。所以可以通过grep来筛选。
[root@Controller ansible]# ansible-doc -l | grep yum
yum Manages packages with the `yum' package manager
yum_repository Add or remove YUM repositories
过滤出来我们想要的模块后,再利用该命令去查看具体的使用案例。
[root@Controller ansible]# ansible-doc yum
在文档中搜索EXAMPLES来快速定位案例。
简单的playbook:
我们来书写一个下载httpd的剧本。
---
- name: install httpd
hosts: localhost
tasks:
- name: start install
yum:
name: httpd
state: present
然后执行:
ansible-playbook packages.yml #该命令用于执行playbook
执行结果:
changed 表示该任务执行完成且完成了任务所定义的行为。
再执行一次会变为ok ,即ansible发现该主机上已有httpd软件,那么就不再完成任务定义的行为。
至此你可以简单的使用ansible来完成一些任务。
文章有问题请联系改正:wgq3135@163.com