一、语言

    既然决定开发了,就得选择开发方式了,从运维工具的角度考虑,决定选择以python语言为主,因为func、ansible、saltstack、openstack都是python写的,这些工具都可以用在运维上,saltstack还有docker模块,Docker容器以后肯定是要上的,这也方便管理;当然puppet也是可以用上的,我之前研究了不少puppet,结合foreman还是比saltstack有优势的,也会在我这个OMS中考虑进的。

    参考:大数据全栈式开发语言 – Python

    教程:官方文档    《简明 Python 教程》     廖雪峰的官方网站

    下载:Python官方下载 (目前是windows python 2.7.11版本,集成了pip包管理工具,我用的是2.7.10)


二、后端

    python语言的WEB开发框架,至少有一二十种,根据天斯大哥的书,我选择了Django,因为它是全能型的;对其他种类也在网上了解了一下,有个对比也是好的。

    参考:Python六大开源框架对比

        Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。

    教程:官方文档,全英文看得累

          1.8.2版官方翻译文档,推荐

          10年少的博客,用的1.8 (我这OMS的小猫图标就是借用他的)

    下载:Django官方下载  (目前LTS长久支持版本是1.8.11,我用的是1.8.7)

         1.8版本的DJANGO对应的PYTHON版本:

        wKioL1b0qmvCkUt1AAAZZaLgjEI015.png 

        这个其实不需要下载,直接pip install Django==1.8.7安装即可,windows要在CMD中执行。

        如果你已装了其他版本Django,用virtualenv工具隔离,别人说的,我还不会。


三、前端

    肯定有人要问了,开发WEB你怎么也得会html+css+js,甚至jquery+ajax这些吧,那是必须的,但也不一定要学得很熟,网上有很多方案是可以直接使用的,只需要给<>标签加上指定的class就有很好的展示效果了,于是我找到了Bootstrap,对我这种零基础的人来说简直就是神器了。

    参考:官方网站 

    教程:官方网站教程 (全局 CSS 样式组件JavaScript 插件定制网站实例)

         Runoob.com菜鸟教程网(这个菜鸟教程网站非常好,上面的html\css\js\jquery\ajax\sql\python\git等等有不会的都可以简单的看一看)

    下载:官方下载 (目前是3.3.5版本,下载“用于生产环境的 Bootstrap”就行了)

wKioL1b0s3bRxTU1AAAkCocyfZE391.png

    下载的目录结构就是上图这样,除了jquery-2.2.0.min.js文件,Bootstrap 的所有 JavaScript 插件都依赖 jQuery,需要单独下载

    你也可以不下载bootstrap,直接使用bootstrap的CDN,例如:

<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- 可选的Bootstrap主题文件 -->
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>


四、数据库

    Django支持多种数据库,默认使用sqlite3,仅仅一个文件,用来开发最方便,我还是比较习惯使用mysql,这没什么好说的,你用别的也行,通过model可以直接生成对应数据库的表,更换无压力。

    下载:官方下载windows版 (mysql-installer-community-5.7.10.0.msi)

    安装:选择server only模式,config type选择server machine,root密码设为abc@123

    Python模块: 下载MySQLdb (windows版下载直接安装就行)



五、开发环境

    这个开发环境最重要,因为它将伴随你所有的开发时间和体验,DJANGO开发工具IDE可以选择的有很多,有轻的有重的,例如sublimeEmacseclipse+pydevpycharm 等等, 参考网上重多建议,选择了功能全面的Pycharm,支持git、svn、mysql管理、WIN CMD、代码补全高亮、智能提示等,还支持创建bootstrap项目,对学习前端有帮助,关键是对我这种习惯windows操作的人比较方便友好。

    开发环境在自己的笔记本电脑上进行,windows7x64系统。

    参考:PythonIDE集成开发环境选型

    下载:PyCharm官方下载 (下载FULL版本,有试用期1个月,把系统时间后调20年再激活试用,之后重启调回时间,有个缺点就是启动比较慢)

    创建Django项目,填写应用名称直接生成一个应用目录,还可以和svn或git结合:

wKioL1b0tXDiUKpIAACtXqMjQxE376.png

    创建Bootstrap项目,可以用来学习前端效果:

wKioL1b0tNjzpP6RAACy_zjDRMw920.png


六、配置管理工具

    Func、Ansible、SaltStack、Puppet都属于配置管理工具,OMS决定用基于python语言的SaltStack作为控制台。

    SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,

一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合

轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、

python-msgpack和PyYAML等)构建。

    参考:官方网站

    命令:Salt模块及命令


七、参考项目

1、刘天斯的《python自动化运维:技术与最佳实践》:

    其中OMServer项目就是以django搭建的

    博客:http://blog.liuts.com/post/245/

    源码:https://github.com/yorkoliu/pyauto/


2、CMDB运维管理平台

    也是以django+saltstack

    网站:http://www.linuxde.net/2015/09/15704.html

    源码:https://github.com/xiaoluoge11/lmanager/tree/master/CMDB


3、binbin的OMS运维管理平台

    源码:https://github.com/binbin91/oms

    

    主要参考以上三个项目,其他还有些小的django项目用来学习django的就不列出来了,网上多的是。    

    值得注意的是,django版本变化较大,特别是1.7以后,比如syncdb同步数据库命令变成了migate,用不render_to_response而用render等。

    另外关于生产环境,将会部署在linux下,如centos 6.5,用nginx+uwsgi部署,以后会单独开一编讲。