python运维——自动化远程连接项目

应用背景:
对于项目中有一些固定的繁琐的操作步骤的地方,每次手动处理比较费时,通过自动化项目,把这些固定的步骤交由程序执行,可以节省我们的时间,提高效率。

自动化连接项目功能:
通过pexpect包模块提供的方法,远程连接到Linux主机,对上面的SClient客户端做自动操作。
手动启动SClient程序,需要一步步在界面输入命令,去执行下一步,通过pexpect包可以将这些手动操作自动化执行

SClient客户端的作用:
通过SClient连到不同地域的网络(当然,这些网络要通才行,如何ping通?服务器拨号,开通内网连外网的权限)


项目关键点:
1、项目放在linux环境上执行的,需要手动加入模块包引入路径
sys.path.append("/usr/local/PythonProject/Lib/site-packages"),append的路径为Linux上模块包存放路径,不加入,则在Linux操作界面里会报“找不到模块”错误。

2、连接Linux主机,需要通过ssh协议连接

3、主要方法及作用
Spawn(),生成远程连接的对象,后续所有操作都通过该对象实现
Expect(),期望,我们想要从Linux机子上得到的信息,根据expect发送的期望信息,做下一步的操作。期望,可以包含多条信息,如果与Linux返回的信息有匹配,则执行匹配后的操作,期望的多条信息,一次只能匹配到其中一条
Sendline(),发送命令并自动换行,代替在Linux主机里的手动输入

项目优化点:
1、当前主机即为要连接的Linux机子,是否还需要远程连接操作?
需要,因为所有的expect、sendline等方法都是基于一个远程连接对象来的,没有远程连接对象,什么操作都做不了
2、自动化选择不够灵活,只能输入固定的操作命令

附:
Pexpect模块包的使用,可参照《Python自动化运维_技术与最佳实践》一书


 

你可能感兴趣的:(运维)