一种自动化实现虚拟机互信的方法与流程

文档序号:11156148阅读:754来源:国知局
一种自动化实现虚拟机互信的方法与制造工艺

本发明涉及虚拟机技术领域,具体涉及一种自动化实现虚拟机互信的方法,基于Python实现,基于该方式,避免了手动做互信频繁输入密码操作,将机器密码提前配置到文件,实现过程中无需进行任何交互,真正实现自动化。



背景技术:

随着云计算与大数据的兴起,分布式技术得到了广泛的应用,分布式集群涉及到大量的通信,节点之间配置互信已经成为系统部署不可或缺的一部分。

在Linux系统集成与运维工作中,往往涉及到多台主机,多台主机之间进行大量的通信则免不了需要登录,每次登录都需要手动输入密码则过于繁琐,同时,很多自动化部署产品、工具也依赖各节点的互信,所以实现各节点之间的互信不仅可以大大简化运维人员的工作效率,也为系统的自动化运维工作带来便利。

传统的互信配置方法往往是手动生成公钥,然后进行主机间的拷贝,这个过程涉及到多次密码交互,全部由手工完成。还有一部分是将以上步骤写成shell脚本,涉及到拷贝或者登录的地方进行手动输入或者利用expect来实现自动输入,但过程相对繁琐,而且远程拷贝和远程登录生成公钥的操作均需要交互,导致实现过程异常繁琐且混乱。

为了解决以上实现多机互信中实现思路混乱、过程繁琐等问题,我们提出了一种基于Python的自动化实现多机互信的方法,将密码和互信ip地址采用文件的形式存放,一键实现互信操作,避免了频繁的密码交互。



技术实现要素:

本发明要解决的技术问题是:本发明针对以上问题,提供一种自动化实现虚拟机互信的方法,解决传统多机互信实现过程的繁琐以及混乱,真正实现自动化多机互信,且保持良好的通用性。

本发明所采用的技术方案为:

一种自动化实现虚拟机互信的方法,所述方法通过预先将需要实现互信的虚机IP地址以及密码配置在文件中,使用时将文件拷贝到任一需要互信的节点,然后配置集群机器的IP地址和密码,即可实现虚拟机互信。

所述方法基于Python,通过Python paramiko模块实现。

Python是一种面向对象、直译式计算机程序设计语言,语法简捷而清晰,具有丰富和强大的类库。

paramiko遵循SSH2协议,支持加密和认证的方式进行远程服务器的连接,通常被用来做批量远程服务器配置、文件上传、文件下载。

所述方法实现步骤如下:

1)在当前登录节点进行paramiko的安装;

2)安装完成后,利用paramiko的SSHClient功能读取预先配置在当前登录节点的文件(包含互信节点ip地址和用户密码),进行指定ip和密码的远程连接;

3)当获取连接后,利用系统工具ssh-keygen生成当前节点的公钥,然后利用paramiko的文件下载功能将该公钥复制到当前登录节点,这样在当前登录节点就可以获取到配置文件中所有互信节点生成的公钥文件,

4)将所有的公钥文件写入到远程登录时系统会读取的authorized_keys文件中,实现在当前登录节点免密码登录任意其他节点;

5)由于互信是相互的,即需要实现任意其他节点可以免密码登录当前登录节点,所以还需要将当前登录节点的authorized_keys文件拷贝到其他节点,因为当前登录节点包含了所有节点的公钥文件,所以此时所有的主机之间都实现了互信。

本发明的有益效果为:

本发明有效解决了传统手工配置主机间互信的繁琐,随着主机规模的上升,效果越发明显,且形成了灵活可配置的工具,保持良好的可拓展性和可移植性。

附图说明

图1为自动化多机互信流程示意图。

具体实施方式

下面根据说明书附图,结合具体实施方式对本发明进一步说明:

实施例1:

一种自动化实现虚拟机互信的方法,所述方法通过预先将需要实现互信的虚机IP地址以及密码配置在文件中,使用时将文件拷贝到任一需要互信的节点,然后配置集群机器的IP地址和密码,即可实现虚拟机互信。

实施例2

在实施例1的基础上,本实施例所述方法基于Python,通过Python paramiko模块实现。paramiko遵循SSH2协议,支持加密和认证的方式进行远程服务器的连接,通常被用来做批量远程服务器配置、文件上传、文件下载。

实施例3

如图1所示,在实施例2的基础上,本实施例所述方法实现步骤如下:

1)在当前登录节点(以下简称A节点)进行paramiko的安装;

2)安装完成后,利用paramiko的SSHClient功能读取预先配置在A节点的文件(包含互信节点ip地址和用户密码),进行指定ip和密码的远程连接;

3)当获取连接后,利用系统工具ssh-keygen生成当前节点的公钥,然后利用paramiko的文件下载功能将该公钥复制到A节点,这样在当前登录节点就可以获取到配置文件中所有互信节点生成的公钥文件,

4)将所有的公钥文件写入到远程登录时系统会读取的authorized_keys文件中,实现在A节点免密码登录任意其他节点;

5)由于互信是相互的,即需要实现任意其他节点可以免密码登录当前登录节点,所以还需要将A节点的authorized_keys文件拷贝到其他节点,因为A节点包含了所有节点的公钥文件,所以此时所有的主机之间都实现了互信。

实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1