此次是基於devstack進行自動化部署,後續會經過解析這個部署腳本的源代碼的形式,學習openstack的部署,同時一步步閱讀openstack其餘服務的源碼,好比keystone、nvoa等,一步步深刻。
html
事實上手動部署和自動化部署在命令上沒啥區別,若是對自動化部署軟件的源碼熟悉,其實收穫更大mysql
自動化部署原理:git
自動執行安裝腳本:將安裝命令腳本化—>github
自動生成配置文件:生成正確的配置參數—>sql
自動解決依賴關係:安裝依賴的軟件包&服務的安裝順序數據庫
(理解自動化部署的思路,以便後續本身編寫自動化部署腳本)分析軟件的架構特色ubuntu
devstack下載swift
devstack經過git來實現代碼的版本管理bash
注:ubuntu下git安裝: sudo apt-get install git 服務器
git clone https://github.com/openstack-dev/devstack.git代理問題(proxy):
git通常經過兩種協議實現傳輸:http(https)和ssh
有些公司會經過代理服務器上網,代理服務器一般只會容許http協議
注:具體參見《ubuntu git http proxy配置 》
我這裏是建議使用在一個徹底乾淨的環境中進行部署,安裝的時候,我在ubuntu14中部署,而後時區設置在usa,以前設置在重慶留下了蠻多坑的,好比上面設置代理之類的,後面的話,改爲usa順利了一些。
分析devstck的文件結構
stack.sh à自動化部署的入口 à .exe文件
unstack.sh à 卸載腳本
localrc à配置文件 à 傳入stack.sh的參數(這個localrc文件在這~github上面是沒有的
localrc文件下載連接http://down.51cto.com/data/2339580
nova部署在哪一個節點,用戶名密碼是啥
openrc à 環境變量腳本
在執行openstack命令時要導入一些環境變量
export OS_USERNAME = admin
lib à每一個服務的自動化安裝腳本
nova,swift等自動化安裝腳本
手動安裝時執行的全部命令
每個openstack服務對應一個文件
分別對應的是各類服務的部署腳本,介紹一下其中一部分服務
database、databases:openstack數據庫服務的數據庫服務的部署腳本
postgresql/mysql默認使用mysql
nova、nova_plugins
functions-libvirt hypervisor-baremetal hypervisor-fake hypervisor-ironic hypervisor-libvirt hypervisor-openvz hypervisor-vsphere hypervisor-xenserver
tempest單元測試框架
devserack的執行原理
先經過stack.sh判斷localrc是否存在,若是是則進入配置模式,不然進行交互模式交互模式是須要根據自身需求向stack.sh輸入相關的服務指令,如mysql的密碼、roken參數等信息配置模式的話,就是根據localrc配置好的參數進行自動化安裝,並部署,下面介紹localrc的指令信息
DATABASE_PASSWORD=123456 配置數據庫的密碼,默認是mysql,若是想安裝postgresql則須要修改DATABASE_TYPE=postgresql ADMIN_PASSWORD=123456 管理員密碼 SERVICE_PASSWORD=123456 SERVICE_TOKEN=123456 token信息,每次請求都要帶着不然會被拒絕 RABBIT_PASSWORD=123456 rabbit MQ密碼 reclone=true 這個配置以後會從新下載各個服務的源碼,若是檢測到哪一個服務的源碼不對的話,將會從新下載
接着是配置devstack和openstack日誌文件的存儲位置
DEST=/home/stack LOGFILE=$DEST/logs/stack.sh.log VERBOSE=True LOG_COLOR=True SCREEN_LOGDIR=$DEST/logs
須要部署的服務直接寫在這兒就行,而後我在部署的時候稍微修改了一下文件,目的是增長一些服務以便後續的學習,固然了,讀者能夠自便修改相關參數
VIF_PLUGGING_IS_FATAL=False VIF_PLUGGING_TIMEOUT=10
上面兩個是用來解決openstack部署vxlan時的一個bug
以上是我建議的須要的修改的一些配置,僅供參考
詳細的部署教程看下一篇