数据人成长交流的一站式服务平台

网站首页 > 数据编程 正文

自动化配置集群主机之间ssh免密登陆 #技术分享

nandi88 2024-10-13 07:03:11 数据编程 6 ℃

在两台主机之间配置SSH免密登陆,需要分别在两个机器上进行配置。如果是3台主机,则需要两两之间都配置,这需要6次,4台主机则需要12次。如果集群中有50台主机,手动进行这样的配置将会大大浪费时间。可以使用ansible自动化设置,节省下来的时间可以摸鱼。

·创建一个剧本,目标在所有主机组上运行。

·然后创建第一个任务,用于在所有主机上生成SSH密钥。对使用openssh_keypair模块可以实现。

·最后将结果注册到临时变量ssh_key_info中,这个变量将用于稍后调用。

如果打印这个变量,会看到每台主机的SSH公钥的内容。现在公钥已经有了,接下来的任务就是将这些公钥分发到所有主机上,本质上就是将公钥的内容写入到指定的文件中。所以使用lineinfile模块来实现,模块会确保将公钥的内容写入到每一台主机上的authorized_keys文件的最后一行中,而公钥的内容就是保存的临时变量ssh_key_info。

·最后通过一个循环指定在所有主机上运行,并且做一个简单的条件判断。当运行到主机本身时跳过,这样就不会将自己的SSH公钥写入到配置文件中。

运行这个剧本,可以看到确实如此,主机跳过了自身,然后将其他所有主机的公钥都写入了authorized_keys中。验证一下,在Server a中尝试登录Server b,无需密码。再从Server b登录到Server a上一样无需密码。

关注我20年培训经验,引领技术飞跃。

最近发表
标签列表