终于在今天完成了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 & 命令在后台执行。
页面展示:
选择要上线的项目
返回执行结果
写这篇博文是记录自己在python开发中的点点滴滴,准备从一名运维工程师慢慢向运维开发工程师转变。
最后附上代码
时间: 2024-10-01 07:34:06