一、语言
既然决定开发了,就得选择开发方式了,从运维工具的角度考虑,决定选择以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版本:
这个其实不需要下载,直接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”就行了)
下载的目录结构就是上图这样,除了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可以选择的有很多,有轻的有重的,例如sublime、Emacs、eclipse+pydev、pycharm 等等, 参考网上重多建议,选择了功能全面的Pycharm,支持git、svn、mysql管理、WIN CMD、代码补全高亮、智能提示等,还支持创建bootstrap项目,对学习前端有帮助,关键是对我这种习惯windows操作的人比较方便友好。
开发环境在自己的笔记本电脑上进行,windows7x64系统。
参考:PythonIDE集成开发环境选型
下载:PyCharm官方下载 (下载FULL版本,有试用期1个月,把系统时间后调20年再激活试用,之后重启调回时间,有个缺点就是启动比较慢)
创建Django项目,填写应用名称直接生成一个应用目录,还可以和svn或git结合:
创建Bootstrap项目,可以用来学习前端效果:
六、配置管理工具
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部署,以后会单独开一编讲。