本人于2009年12月迁移至独立BLOG。
1、欢迎光临运维进行时,希望认识更多志向相同的朋友!
2、本站部分资源来源于网络,如有侵权请及时与我联系!
3、强烈建议使用Firefox、Opera、Safari及IE7以上的浏览器访问,以获得最佳浏览质量!
4、请勿发表与中华人民共和国法律、法规相抵触的言论,谢谢合作!
5、本人发布的文章与评论内容仅代表本人观点。
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]

        主控端是OMServer的核心角色,负责接收加密的协议串且进行解密,解析成OMServer调用的任务模块,同时结合角色中的saltstack、ansible或func组件,向目标业务服务器集群(被控机)发送执行任务,执行完毕后,将返回的执行结果加解密处理,最后逐级返回给系统管理员,角色所在位置见以下架构图:
点击在新窗口中浏览此图片
一、环境部署
1、部署saltstack、ansible或func组件,详细见本书相关章节,此处省略;

2、安装rpyc模块

3、下载主控端源码
#cd /home
download github地址:https://github.com/yorkoliu/pyauto/tree/master/第十三章/OMServer

修改OMServer/config.py主配置文件

4、编写任务模块
    1)在WEB前端点击【添加模块】,指定模块名称、描述、参数接口信息,提交后记录生成的模块ID(数字);
    2)在主控端OMServer/modules目录存放了各个组件的模块,以不同目录名作为区分,任务模块名称由“Mid_”+模块ID组成,与前端生成的模块ID进行关联,如Mid_1007.py,可参考现有示例进行修改。

5、启动服务


二、校验环境
        最后,打开浏览器访问http://omserver.domain.com(自定义域名,可通过修改hosts实现),效果图如下。
点击在新窗口中浏览此图片

三、基于Python构建可扩展的自动化运维平台(WOT分享主题)

       《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 下载
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]