系列文章
目录
上一篇文章中提到,我们有三个虚拟机:
主机 | 操作系统 | IP地址 | 角色 | 主要软件 |
---|---|---|---|---|
server1 | Rocky Linux 8.8 | 192.168.30.121 | 控制机器 | ansible |
server2 | Rocky Linux 8.8 | 192.168.30.122 | 受控机器 | httpd |
server3 | Rocky Linux 8.8 | 192.168.30.123 | 受控机器 | mysql |
并且我们已经完成了在控制机器server1 上安装ansible。下面要建立server1与另外两台机器之间的控制关系。
修改控制机器上ansible的清单文件
Ansible 的全局主机清单文件 Inventory 位于/etc/ansible/hosts
。上一篇文章也介绍了/etc/ansible下的重要文件和目录的含义。参阅Ansible 安装和入门。
这里我们在/etc/ansible/hosts
文件中添加两个组,分别是webserver和mysql,各包含一个主机。
bash
vim /etc/ansible/hosts
[webserver]
192.168.30.122
[mysql]
192.168.30.123
主机清单文件的目的是让 Ansible 知道它需要管理哪些主机,以及如何分组这些主机。例如,我们可以创建一个名为 "webservers" 的组,然后将所有 Web 服务器添加到这个组中。这样,在执行任务时就可以针对这个组而不是单独的每一台服务器
配置公私钥
ansible 是基于 ssh 协议实现的,所以其配置公私钥的方式与 ssh 协议的方式相同。
-
生成公私钥对:
- 在控制节点上,打开终端并输入
ssh-keygen -t rsa
命令来生成 RSA 密钥对。 - 当提示保存密钥的位置时,回车接受默认路径(通常是 ~/.ssh/id_rsa)。
- 输入密码(如果不需要密码,则留空)。
- 再次输入相同的密码确认。
- 生成的密钥对将分别保存在 id_rsa(私钥)和 id_rsa.pub(公钥)文件中。
- 在控制节点上,打开终端并输入
-
查看生成的密钥:
使用
ls
命令查看.ssh目录下生成的密钥文件:id_rsa 和 id_rsa.pub。
-
向被管理节点发送公钥:
使用
ssh-copy-id
命令将公钥复制到被管理节点的 .ssh/authorized_keys 文件中。
bash
ssh-copy-id root@192.168.30.122
ssh-copy-id root@192.168.30.123
主机连通性测试
要测试控制节点(Ansible 主机)与被管理节点(目标主机)之间的连通性,我们可以使用 ping 模块。ping 模块是 Ansible 提供的一个内置模块,用于检查目标主机是否可达。
bash
ansible webserver -m ping
ansible mysql -m ping
示例: