终于在今天完成了django项目开发的一个小项目,使用python写一个自动化上线的项目。使用到了python3.5,django 1.11.2,ansible,centos7。

    功能描述如下:

    1、使用网页点击要上线的项目

    2、在后台系统执行过程中浏览器等待后台命令调用

    3、在上线完成后将后台执行的结果回传到浏览器中。

    步骤解说:

    1、在django中要分清楚get和post的请求方式

    2、使用subprocess.Popen调用时stdout时是byes类型需要使用str(stdout,encoding='utf-8')进行类型转换,使用ansible来做底层的远程命令执行。也可以像成ansible的命令行穿了一个html的马甲。

    3、在使用html展示返回内容时使用<pre>` Executing_processes `</pre> 来展示输出结果,如果返回是乱码说明stdout没有做字符编码。因为使用的是python3.5版本。

    4、使用shell命令nohup python manages.py runserver 0.0.0.0:8000 & 命令在后台执行。

    

页面展示:

wKiom1lIwgOC2yVZAABsUNGgiII485.jpg-wh_50

选择要上线的项目

wKiom1lIwlOSv0weAACFvZOceC0100.jpg-wh_50

返回执行结果

    

    写这篇博文是记录自己在python开发中的点点滴滴,准备从一名运维工程师慢慢向运维开发工程师转变。

    最后附上代码