《python自动化运维:技术与最佳实践》之OMServer平台环境部署详解【Web服务端】
《python自动化运维:技术与最佳实践》书籍发布已经1个月有余,根据读者反馈,在部署OMServer平台时遇到很多困难及问题,尤其是第一次部署Django环境的读者。因此,作者对书籍中OMServer环境部署章节的内容进行扩充,以便让每位读者都可以轻易完成平台搭建。OMServer平台涉及两个角色,其中一个为Web服务端,运行在Django及rpyc环境,另一角色为主控端,需要部署saltstack、ansible或func主控端环境,本文介绍Web服务端的部署详细步骤。
---环境版本说明---
* Python 版本 2.6.6
* Django 版本 1.4.9
* nginx 版本 1.5.9
* pcre 版本 8.34
* rpyc 版本 3.2.3
* uwsgi 版本 2.0.4
* django-debug-toolbar 版本 0.8.5
一、Django环境部署
1、安装pcre,pcre是一个轻量级的正则表达式函数库,Nginx的HTTP Rewrite模块会用到,最新版本为8.34(对于OMServer平台环境来说是非必选项)。
2、安装Nginx,Nginx是最流行的高性能HTTP服务器,最新版本为1.5.9。
3、安装 MySQL-python,MySQL-python是Python访问MySQL数据库的第三方模块库,最新版本为1.2.3c1。
4、rpyc模块安装,用于平台与主控端做数据通讯交互。
5、安装uwsgi。uwsgi是一个快速的、纯C语言开发的、自维护、对开发者友好的WSGI服务器,旨在提供专业的Python web应用发布和开发,最新版本为2.0.4。
出现如下代码成功安装:
################# uWSGI configuration #################
pcre = True
kernel = Linux
malloc = libc
execinfo = False
ifaddrs = True
ssl = True
zlib = True
locking = pthread_mutex
plugin_dir = .
timer = timerfd
yaml = embedded
json = False
filemonitor = inotify
routing = True
debug = False
capabilities = False
xml = False
event = epoll
############## end of uWSGI configuration #############
total build time: 17 seconds
*** uWSGI is ready, launch it with ./uwsgi ***
6、安装Django,Django是一个Python最流行的开源Web开发框架,最新版本为1.6.5。考虑到兼容与稳定性,本案例使用1.4.9版本进行开发。
创建一个demo项目,以便验证环境是否正确安装部署。
7、django-debug-toolbar的安装(Django调试利器)
8、配置Nginx,修改/usr/local/nginx/conf/nginx.conf,最终完整配置如下:
* uwsgi_param UWSGI_SCRIPT wsgi;参数值wsgi对应项目目录中的wsgi.py,此处文件前缀与参数值要保持一致。
9、配置uwsgi,创建uwsgi配置文件/usr/local/nginx/conf/uwsgi.ini,详细内容如下:
---关键参数及说明---
1)chdir 指定项目目录;
2)pythonpath 指定项目目录上一级
3)processes 指定进程数
4)workers 分配CPU的核数
5)limit-as 子进程分配的内存大小
6)max-requests 分配最大的请求数
启动uwsgi与nginx服务,建议配置成服务自启动脚本,便于后续的日常维护。详细启动脚本这里不展开说明,有兴趣的读者可参阅互联网上已经存在的相关资源。
最后启动uwsgi与nginx服务
访问http://demo.domain.com,出现如图所示的页面说明Django+uwsgi环境部署成功!
二、OMServer项目部署
1、修改Nginx配置
添加OMServer项目站点配置,[server]域具体内容如下:
1)切记修改UWSGI_SCRIPT为django_wsgi;
2)监听uwsgi端口修改成127.0.0.1:9001; #多个站点使用不同端口区分
2、添加omserver项目uwsgi配置
3、项目源码配置
1)项目源码:
# cd /data/www
下载地址:https://github.com/yorkoliu/pyauto/tree/master/第十三章/OMserverweb
2)导入数据库结构(Mysql)
下载地址:https://github.com/yorkoliu/pyauto/blob/master/第十三章/SQL/OMServer.sql
3)修改setting.py(数据库信息)
4)修改主控端rpyc主机IP
OMserverweb/autoadmin/views.py
启动项目uwsgi及Nginx服务
4、访问http://omserver.domain.com,出现以下系统界面说明部署成功!
下一步配置《python自动化运维:技术与最佳实践》之OMServer平台环境部署详解【主控制端】
补:平台涉及开源组件包下载:
Django-1.4.9.tar.gz 下载
uwsgi-2.0.4.tar.gz 下载
rpyc-3.2.3.tar.gz 下载
pcre-8.34.tar.gz 下载
nginx-1.5.9.tar.gz 下载
MySQL-python-1.2.5.zip 下载
django-debug-toolbar-master.tar.gz 下载
景天
2014/12/29 18:55
mysql搞好了,自己建用户。建库要自己建立的吧?
刘天斯 回复于 2014/12/29 18:58
是的。
景天
2014/12/29 16:24
mysql的版本有没有要求啊,,centos 6.5 yum安装的mysql server 5.0,1054无法连接,user表里面的内容都是背清空的,safe模式可以进入
景天
2014/12/29 14:41
手册里面没有写到mysql的配置,mysql还要自己配置服务的吧,,,mysql默认我看都没有启动
景天
2014/12/29 14:30
OMServer里面的OMserverweb和外面的OMserverweb不一样吗?新建project 部署OMserverweb就是访问不到啊。。。模块的那些文件和setting.py 这些默认生成好像不在一个目录里面的,,是不是要自己先新建project再拷贝你的模块内容,,,修改配置参数
景天
2014/12/29 11:12
SQL导入这步要怎么搞啊,,另外OMServer那个源码也要放进去部署的吧
刘天斯 回复于 2014/12/29 14:25
mysql -u root -p dbname<OMServer.sql OMServer平台分为两个角色,一为WEB端、另为主控端。
景天
2014/12/29 10:51
OMServer.sql 需要自己用Mysql命令导入表结构吗?
刘天斯 回复于 2014/12/29 14:24
是的。
Baylor
2014/12/23 11:06
好吧。。。。wsgi.py没有执行权限,chmod之后就可以了,我认了
刘天斯 回复于 2014/12/23 14:19
:)
Baylor
2014/12/23 10:48
嗯,尝试着改了下能ping通demo.domain.com,页面还是打不开,我再试试
Baylor
2014/12/22 19:01
但demo.domain.com就是访问不了,大神有着没
刘天斯 回复于 2014/12/22 21:11
别忘了配置hosts,此为一个不存在的域名。
Baylor
2014/12/22 18:59
我在搭建之后一直到‘启动uwsgi与nginx服务‘都一直没有报错
艾迪
2014/12/18 13:32
为神马看完还是觉得弄不好,好吧,我笨。
刘天斯 回复于 2014/12/18 22:31
加油,不要放弃。
大脚
2014/12/07 15:39
如何添加对FLASK的支持,,,,,
刘天斯 回复于 2014/12/07 16:14
思路可以借鉴,实现可以用FLASK来重写。
影子
2014/12/07 15:20
为啥在我搭完之后才看见这篇文章
刘天斯 回复于 2014/12/07 15:22
欢迎分享你的部署经验~
分页: 2/2 1 2