一、語言
既然決定開發了,就得選擇開發方式了,從運維工具的角度考慮,決定選擇以python語言爲主,因爲func、ansible、saltstack、openstack都是python寫的,這些工具都可以用在運維上,saltstack還有docker模塊,Docker容器以後肯定是要上的,這也方便管理;當然puppet也是可以用上的,我之前研究了不少puppet,結合foreman還是比saltstack有優勢的,也會在我這個OMS中考慮進的。
教程:官方文檔 《簡明 Python 教程》 廖雪峯的官方網站
下載:Python官方下載 (目前是windows python 2.7.11版本,集成了pip包管理工具,我用的是2.7.10)
二、後端
python語言的WEB開發框架,至少有一二十種,根據天斯大哥的書,我選擇了Django,因爲它是全能型的;對其他種類也在網上了解了一下,有個對比也是好的。
Django 是 Python 編程語言驅動的一個開源模型-視圖-控制器(MVC)風格的 Web 應用程序框架。
教程:官方文檔,全英文看得累
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系統。
下載: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部署,以後會單獨開一編講。