02Ansible入门

Posted elegantsmile

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02Ansible入门相关的知识,希望对你有一定的参考价值。

Ansible入门

定义主机清单

[root@ansible-server ~]# vim /etc/ansible/hosts
[test]
172.22.69.216 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘eve@123‘
[web]
172.22.69.97 ansible_ssh_user=‘root‘ ansible_ssh_pass=‘eve@123‘

在主机清单中未定义的主机,无法使用ansible进行管理。

测试连通性

[root@ansible-server ~]# ansible test -m ping
172.22.69.216 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

test 是 /etc/ansible/hosts 中定义的主机

-m 指定模块

ping 是指定的模块,用于测试客户端是否能够连接,除此之外还有很多模块,比如shell,yum等

如果在/etc/ansible/hosts中没有指定主机的用户名和密码,就需要:

[root@ansible-server ~]# ansible test -m ping -u root -k -o 
# 手动输入密码

取消安全主机提示:

[root@ansible-server ~]# vim /etc/ssh/ssh_config
StrictHostKeyChecking no

不然每个客户机的第一次连接会提示

简洁输出

[root@ansible-server ~]# ansible test -m ping -o
172.22.69.216 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}

-o 选项可以将输出结果放在同一行

思考:ping模块的原理

关闭web主机的sshd进程

[root@ansible-node ~]# systemctl stop sshd

进行ping连通性测试,结果是连接失败

[root@salt-master tmp]# ansible web -m ping -o
172.22.69.97 | UNREACHABLE!: Failed to connect to the host via ssh: ssh: connect to host 172.22.69.97 port 22: Connection refused

结论:Ansible的ping模块并不是通过ICMP的ping,而是探测ssh程序是否连接。

以上是关于02Ansible入门的主要内容,如果未能解决你的问题,请参考以下文章

ansible批量管理服务入门

ansible的入门级使用

Ansible 入门 - 安装和配置

ansible plugins简介

如何理解这段代码片段中的两对括号?

基础Ansible 自动化运维工具简单入门