环境:被控主机都是linux主机,不过好几种发行版本,但是笔者都还是设计了统一的标准
1、主控和被控端都是Linux操作系统,都是有ansible用户的
2、主控通过ssh-key的私钥登录到被控制端linux
3、被控制端linux上的ansible 有着一系列sudo命令,无密码sudo权限
每当有新的主机加入后,笔者都会进行ansible连接测试,主要基于Ad-hoc及playbook的方式进行测试两种方式
1、基于Ad-hoc方式,这里可以使用ping模块,能正常连接/连通,就会返回pong:
## 指定hosts文件,第一条不执行任何操作,只是列出匹配到的主机,第二条是使用ping模块进行连接测试 ansible all -i hostlist.txt --list-hosts ansible all -i hostlist.txt -m ping ## 无hosts文件的方式,同样也是使用ping模块 ansible all -i 1.1.1.1, -m ping ansible all -i 1.1.1.1,2.2.2.2 -m ping ansible -i 1.1.1.1, all -m ping ansible -i 1.1.1.1,2.2.2.2 -m ping
2、基于playbook的方式,按理说除了测试连通性,还要测试是否有免密码sudo的功能,当然这里笔者只简单测试一下命令即可,个人建议的是使用ls或者pwd等非常通用的命令,如果同时要测试sudo免密码,只需要修改下方命令为sudo xxxxxx 即可
[ansible@qq-5201351 LinuxTest]$ cat linuxtest.yaml --- - hosts: "{{hostid}}" tasks: - name: 1.connection test for linux #shell: command sudo systemctl status sshd shell: command ls
笔者测试了下,shell后面,去掉command也是可以的,最后就可以通过ansible-playbook命令进行测试了:
ansible-playbook -i hosts linuxtest.yaml -e "hostid=webservers,1.2.3.4" -v
额外记录一下,对于像上面的ls命令执行后,最后的状态都是会changed,笔者这里显示changed=1,也就是连接并执行命令成功了
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/16793164.html
标签:hoc,ping,ansible,playbook,测试,linux,连接性,1.1 From: https://www.cnblogs.com/5201351/p/16793164.html