当我们维护linux服务器时,会经常使用到远程登录,当服务器数量不太多时,我们到可以用用户名密码进行远程登录,但如果数量过多,用户名密码又不统一,这是用就要用到我们的免密登录了,一劳永逸!

整体步骤

1.创建秘钥,ansible主机上保存私钥,目标主机上推送公钥

2.设置hosts名单,方便ansible主机能连接到目标主机

3.设置推送公钥的脚本

4.执行

一.安装ansible

该步骤请参考​​第16章 使用Ansible服务实现自动化运维 | 《Linux就该这么学》 (linuxprobe.com)​​,此处不再详述。

二.创建秘钥

1.使用ssh-keygen -t rsa生成密钥对

ssh-keygen -t rsa

使用ansible批量推送秘钥_自动化部署

使用ansible批量推送秘钥_ansible_02

2.修改ansible.cfg

host_key_checking=False

使用ansible批量推送秘钥_免密登录_03

三.设置hosts目录

主机清单文件/etc/ansible/hosts中默认存在大量的注释信息,可以全部删除,重新填写主机信息,[分组名称]为分组标注,方便进行管理。[all:vars]中all为分组名称,指的是该分组使用一下参数。

使用ansible批量推送秘钥_ansible_04

四.创建角色

ansible-galaxy init xxx,xxx为我们的角色名,此处使用key代替

使用ansible批量推送秘钥_免密登录_05

五.编写剧本

Cd key/tasks

Vim main.yaml

使用ansible批量推送秘钥_ansible_06

六.执行脚本

 1.创建执行任务

设置好剧本名,hosts选择all代表将对主机清单上的所有机器执行剧本,roles填写我们编写好的角色。

至此我们的一出好戏已经准备完毕,静等开幕!

使用ansible批量推送秘钥_自动化部署_07

 2.执行

剧本在192.168.91.178上执行成功。192.168.91.161是由于虚拟机未开机,导致执行失败。

使用ansible批量推送秘钥_ansible_04

七.验证

[root@localhost ~]# ssh root@192.168.xxx.xxx

Last login: Fri Jul 14 15:56:00 2020 from 192.168.xxx.xxx

使用ansible批量推送秘钥_ansible_02