写一个最小可用的 Playbook 示例,可以让 webservers 组里每个节点执行 ping -c 4 www.baidu.com,并把结果收集到控制端。
创建一个 ping_baidu.yml:
- hosts: webservers
become: no
tasks:
- name: Ping www.baidu.com from each host
shell: ping -c 4 www.baidu.com
register: ping_result # 把结果保存到变量里
- name: Show ping output
debug:
var: ping_result.stdout
ansible-playbook ping_baidu.yml
执行后你会看到类似:
TASK [Show ping output] ********************************************************************
ok: [10.0.19.207] => {
"ping_result.stdout": "PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data...\n64 bytes from 14.215.177.39: icmp_seq=1 ttl=54 time=12.3 ms\n..."
}
ok: [10.0.19.208] => {
"ping_result.stdout": "PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data...\n64 bytes from 14.215.177.39: icmp_seq=1 ttl=54 time=15.6 ms\n..."
}
register: ping_result 把命令执行的结果保存起来。debug: var=ping_result.stdout 只显示标准输出,不会展示太多无关信息。