赞
踩
作为一名专职前端开发的我,为了帮助解决目前工作中的一些繁琐的工作(主要是处理 excel数据),解放程序员双手,前阵子就刚刚入了 python 的坑,毕竟也算是门工具语言,都已经加入少儿编程了,哈哈哈!
实践是检验学习成果的唯一标准!
在我学习过程中,一直琢磨着如何将学习的理论与我所掌握的知识结合起来,来解决或者处理实际问题,于是就有了 前端自动化打包部署 的念头。
尽快近几年,市面上关于自动化部署的工具层出不穷,比如当下比较流行的 Jenkins ,尽管如此,我还是想自己试一试~
初学乍道,切不可眼高手低,先给自己定个小目标,先实现一个最简单版本。
工欲善其事,必先利其器,开发环境的配置是开发的第一步。
关于 python 的安装配置我就不赘述了。
为了方便测试,我本地利用 VM 虚拟机安装了 centos 系统,安装并配置 nginx 充当了服务器。
要想实现打包,核心需要考虑下面2个问题:
通过查阅资料得知, python 中的 os 模块提供了非常丰富的方法用来处理文件和目录,其中 os 模块中的 system() 函数可以方便地运行其他程序或者脚本,其语法如下:
os.system(command)
command 要执行的命令,相当于 在Windows 的 cmd 窗口中输入的命令。如果要向程序或者脚本传递参数,可以使用空格分隔程序及多个参数,该方法返回结果如果为 0,则表示命令执行成功,其它值则表示错误。
这样就解决了第一个问题。
关于服务器连接这一块,可以使用 python 的一个第三方模块 paramiko ,它实现了 SSHv2 协议,允许我们直接使用 SSH 协议对远程服务器执行操作,关于 paramiko 的更多知识和用法,请戳 这里
这样上面两个难点就解决了,我们就可以开工了。
首先定义一个类 SSHConnect 后续的方法我们都会在这个类里面完善
- class SSHConnect:
- # 定义一个私有变量,用来保存ssh连接通道,初始化为None
- __transport = None
- 复制代码
我们需要在构造函数中定义我们需要的参数,初始化我们的连接
- # 初始化构造函数(主机,用户名,密码,端口,默认22)
- def __init__(self, hostname, username, password, port=22):
- self.hostname = hostname
- self.port = port
- self.username = username
- self.password = password
- # 创建 ssh 连接通道
- self.connect()
- 复制代码
我们在构造函数中最后调用了一个 connect 方法建立
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。