8分钟

任务 3 使用 ansible ping 模块实现测试主机互通性

任务目标

由于装有 ansible 的操作机“serverA”在实现自动化部署的过程中,需要访问其他主机对其配置进行添加或修改。因此,我们需要通过创建和拷贝密钥对,实现多机之间的免密登录,并使用 ansible ping 模块,测试多机之间的互通性,实现操作机“serverA”可对其他主机进行免密访问。

任务步骤

1.实现“serverA”对“serverB”的免密登录

1)使用以下命令,在部署 web 集群的操作机“serverA”实例上生成密钥对。

ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
生成密钥对

2)查看密钥对保存的位置,密钥对包括私钥和公钥。

ls /root/.ssh
查看密钥对保存的位置

3)使用命令将密钥对同步到主机“serverB”上。

注意:在此处输入“serverB”实例的公网地址和内网地址都能实现同步,选择其一即可,我们在这里选择内网地址,并输入“serverB”实例的登录密码。

ssh-copy-id <serverB实例内网地址>

如本次实验使用的“serverB”服务器内网地址为:

ssh-copy-id 172.16.0.25
拷贝密钥对

4)登录“serverB”云服务器实例上,查看同步过来的密钥对。

ls /root/.ssh
查看拷贝结果

5)内网和公网访问。

  • 此时在部署自动化的操作机“serverA”实例上就可以实现免密访问分机“serverB”实例了,先尝试使用内网地址访问,查看到操作机“serverA”实例访问“serverB”实例成功。
ssh <serverB实例内网地址>

如本次实验使用的“serverB”服务器内网地址为(内网地址下同):

ssh 172.16.0.25
内网访问

注意:同样地,由于将包含公钥和私钥的密钥对同步到了主机“serverB”和“serverC”上,所以免密公网访问和免密内网访问都可以实现。

  • 我们使用【Ctrl+D】退出“serverB”再回到“serverA”实例上,使用公网访问“serverB”实例,查看到同样访问成功。
ssh <serverB实例公网地址>

如本次实验使用的“serverB”服务器公网地址为(公网地址下同):

ssh 129.204.227.105
公网访问

6)使用 ping 模块,输入“serverB”公网地址查看“serverA”和“serverB”的主机连通性。

ansible <serverB公网地址> -m ping
查看连通性

若显示“SUCCESS”和“pong”字样,则表示两主机互通。

2.实现“serverA”对“serverC”的免密登录

同理,实现对“serverC”的免密登录也需做相同的操作,即可实现“serverA”和“serverC”的互通。

1)输入”serverC“内网地址,拷贝密钥对。

ssh-copy-id <serverC内网地址>
ssh-copy-id 172.16.0.38
拷贝密钥对

2)在“serverC”上查看密钥对。

ls /root/.ssh
查看密钥对

3)“serverA”实例内网访问“serverC”实例。

此时在部署自动化的操作机“serverA”实例上就可以实现免密访问分机“serverC”实例了,先尝试使用内网地址访问,查看到操作机“serverA”实例访问“serverC”实例成功。

ssh <serverC内网地址>
ssh 172.16.0.38
内网访问

4)“serverA”实例公网访问“serverC”实例。

ssh <serverC公网地址>
ssh 111.230.212.13
公网访问

5)使用“serverC”公网地址查看到与“serverA”实例两台主机互通。

ansible <serverC公网地址> -m ping
查看连通性