Ansible之controller与Node节点主机通讯

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible之controller与Node节点主机通讯相关的知识,希望对你有一定的参考价值。

现在,我在controller主机上去ping其它node节点的主机,网络配置没问题的话,他们之间是可以正常通讯的,如下图:
技术图片

但是,如果我用node节点主机的hostname来ping呢?
技术图片
从上图可以看到,是不可以ping通的。原因是什么呢?我这些VM都是用的NAT模式,如下图所示:
技术图片

再查看一下VMWare Workstation的NAT配置信息:
技术图片

可以看到,我们的DNS设置是自动detect,我尝试ping了一下我的本地电脑,也是不通的,这大概也就说明了我本地电脑上设置的DNS是没有被VMWare Workstation detect到的。
技术图片

所以现在只能先手动的,把node节点主机IP和hostname添加到controller主机的hosts文件里吧!
输入命令:vi /etc/hosts
然后做如下更改:
技术图片
然后Esc退出编辑模式,输入:wq保存退出

让我们来试试这次可否用各节点的hostname来ping
技术图片

从上图可以看到,我们已经可以用各个节点的hostname来ping了。

那现在我们ssh到node1上,输入命令:ssh [email protected]
提示你要不要继续连接,输入yes,然后输入password,连接成功。

技术图片

那我们来看看是否可以用各个主机的hostname来ping

技术图片

从上图可以看到,在node1主机上,还是不可以用各个主机的hostname来ping的。为什么呢?因为在node1主机上,VM同样用的NAT网络配置,DNS还是auto detect,那我们来看看node1上的hosts文件:

技术图片

看到了吧!很干净,就是系统默认的,那现在解决这个问题就要把刚才在controller主机上修改hosts的过程再来一遍,现在只有3台主机,目前手动改改还可以,但是如果100台呢,岂不是要搞死了啊!有没有其它好的方法,可以把controller主机上面的hosts文件copy到这3台主机上呢?

网上搜了一把,有一个命令可以将本地文件copy到远程主机上,那就是scp命令,输入scp,回车,有简单的使用说明,见下图:
技术图片

那直接按最简单的格式来试一把吧,竟然可以,那另外2台也一起copy一下吧,显示都是100%,看来没什么问题。

技术图片

那我们就登录到各个主机,查看一下,到底copy过去了没。先查node1
技术图片
没毛病,成功copy过来了。那来ping一把其它主机,如下图,都可以ping通。

技术图片
接着看node2,估计也没啥问题:
技术图片
技术图片
如上图,没毛病,而且可以ping通其它主机,最后来看看node3
技术图片

在node3上,ping其它主机,通的
技术图片

以上是关于Ansible之controller与Node节点主机通讯的主要内容,如果未能解决你的问题,请参考以下文章

Ansible之node配置

Win10下从零搭建Linux+Ansible+K8S 学习环境笔记(1*Master/controller+3*Node)

Win10下从零搭建Linux+Ansible+K8S 学习环境笔记(1*Master/controller+3*Node)

openstack 之 使用ansible安装部署试验

Ansible之模块参数

Ansible 脚本部署 OpenStack