中原標準時間4月8日,OpenStack社群如期釋出了OpenStack的第13個版本——Mitaka,新版本更多聚焦于可管理性、可擴充性和終端使用者體驗方面。OpenStack作為一個IaaS基礎設施架構的集大成者,通過支援、內建衆多插件的方式,向使用者提供更多可選擇的功能和需求,比如SDN、NFV、Container等。OpenStack已經成為衆多企業和伺服器提供商的雲平台選擇之一。
由于,筆者更多從事的是OpenStack研發測試體系相關的CI-CT-CD工作。是以,在筆者看來,OpenStack另一個非常成功的一方面是其面向所有人的參與、貢獻和交流等平台。為了協調這些,OpenStack社群建構和維護了一套非常完整的研發測試系統。這些基礎設施,無疑是奠定OpenStack取得成功的重要基石之一。
鑒于,OpenStack的開發和體驗,一般是使用Devstack的方式自動化部署。是以,這裡基于自己的實踐過程,總結出一份本日Release的Mitaka完整安裝過程。
與其他資料所不同的是,本次安裝較詳細的給出了安裝後的相關網絡配置,相信能給初學或體驗者帶來更好的體驗。
一.環境
環境:
- 清單内容
- 一台CentOS 7.2 VM;
- 一張NAT網卡;
- 記憶體4G;
- ip位址10.10.10.129;
二.部署
1、關閉iptables防火牆和selinux
# vim /etc/selinux/config
#SELINUX=enforcing //注釋掉
SELINUX=disabled //增加
# yum -y install iptables-services
# systemctl disable iptables
# reboot
2、安裝epel源和git
# yum -y install epel-release git
# yum -y install net-tools
3、準備Devstack
下載下傳代碼:
# cd /home
# git clone https://github.com/openstack-dev/devstack.git -b stable/mitaka //指定clone mitaka版本
4、需要建立stack使用者運作
# cd /home/devstack/tools/
# bash ./create-stack-user.sh
5、修改devstack目錄權限,讓stack使用者可以運作
# chown -R stack:stack /home/devstack
# chmod 777 /opt/stack -R
6、切換到stack使用者下
# su stack
$ cd /home/devstack
7、編輯建立localrc檔案,添加以下内容:
# Misc
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=$ADMIN_PASSWORD
# Target Path
DEST=/opt/stack
# Enable Logging
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=$DEST/logs
KEYSTONE_TOKEN_FORMAT=UUID
# Nova
enable_service n-novnc n-cauth
# Neutron
disable_service n-net
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
ENABLED_SERVICES+=,q-lbaas,q-vpn,q-fwaas
# Swift
#enable_service s-proxy s-object s-container s-accounts
#SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
# Cinder
VOLUME_GROUP="cinder-volumes"
ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak
# Ceilometer
#enable_service ceilometer-acompute ceilometer-acentral ceilometer-anotification ceilometer-collector ceilometer-api
#enable_service ceilometer-alarm-notifier ceilometer-alarm-evaluator
# Heat
enable_service heat h-api h-api-cfn h-api-cw h-eng
enable_service tempest
# Trove
enable_service trove tr-api tr-tmgr tr-cond
# Sahara
enable_service sahara
# Murano
enable_plugin murano git://git.openstack.org/openstack/murano
enable_service murano-cfapi
enable_service g-glare
MURANO_APPS=io.murano.apps.apache.Tomcat,io.murano.apps.Guacamole
enable_service murano murano-api murano-engine
HOST_IP=10.10.10.129 //本機IP位址
FIXED_RANGE=10.0.0.0/24 //私有IP網段
NETWORK_GATEWAY=10.0.0.1 //私有網段網關
注意:若需要安裝其他服務,請參考其他資料。
8、運作Devstack,執行安裝
$ ./stack.sh
注意:使用的是stack使用者運作。
9、預設Devstack建立 admin和demo兩個使用者,通過設定環境變量可以進行相關操作。進入到/home/devstack目錄下。
admin 使用者:
$ source openrc admin admin
demo 使用者:
$ source openrc demo demo
10、其他
安裝失敗時,可以再次執行安裝指令。
11、配置網絡
由于在Devstac安裝過程中,将br-ex的位址設定成了其他ip,是以需要将br-ex位址清除掉,重新配置。
$ sudo ip addr flush br-ex
或者
之後将實體網卡eno16777736(即eth0)作為br-ex的port,之後建立的虛拟機就可以通過eth0通路網絡,也能登陸Dashboard了,Host也可以通過floating ip通路虛拟機。
這裡,我給出自己的配置内容
# cat ifcfg-eno16777736
TYPE=OVSPort
DEVICE=eno16777736
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
# cat ifcfg-br-ex
TYPE=OVSBridge
DEVICE=br-ex
DEVICETYPE=ovs
BOOTPROTO=static
IPADDR=10.0.0.9
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
# ovs-vsctl add-port br-ex eno16777736 ;systemctl restart network
PS:因為,一般VM是通過br-ex外部網橋的ip出外網的,是以,必須保證能ping通。
- 關閉Selinux、iptables;
- 如果部署的是GRE、VXLAN網絡,使用ip a指令,檢視br-ex的ip位址,是否能ping通;
- 使用ovs-vsctl show指令,檢視網橋br-ex的設定情況。這裡的eno16777736是我的實際網卡,即eth0,如下圖所示:
3)ip a檢視br-ex ip位址
# ip a | grep br-ex
:br-ex:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN
inet ./ brd . scope global br-ex
最後,我們使用這個ip位址登陸Dashboard!
三.Horizon有哪些變化
1.登入Dashboard
http://10.10.10.129/dashboard
使用者名:admin
密碼:admin
2. Horizon有哪些變化
1)Keystone——身份管理變化
Mitaka版本界面中,新增加了組、域和角色的操作功能。原來隻能通過指令行操作的,現在也能通過界面來實作了。
組:就是把使用者放在一個組裡,一個使用者可以屬于多個組,這樣可以友善進行權限管理。
角色:也就是給建立項目的使用者,配置設定member、admin的roles。
域:将使用者和其他組使用的基礎設施相隔離,具體管理的有組群組下的使用者。
如下圖所示
2)Cinder——雲硬碟一緻性組
3)Horizon——添加開發者(Bootstrap主題)面闆
Mitaka版本新增加的Bootstrap主題預覽面闆功能,可以讓使用者在Default和Bootstrap兩種主題中自由切換,并且可以在Bootstrap主題中進行自由配置。
4)Nova——主機集合
主機集合,就是把計算節點分組,一個計算節點隻能屬于一個組。這樣我們在資源排程上可以更加靈活,根據需求把建立的虛拟機放到相應的主機集合裡。主機集合,使用者是看不到的,是管理者通過設定,排程生效。通常,适用于大規模的環境。
5)Nova——中繼資料定義
可以讓使用者導入自定義的中繼資料和删除等。
6)其他
此外,雲主機類型中,也新增加了許多字段,比如RX/TX 因子、Swap磁盤等。
3.一些建議
Devstack安裝trove元件時,會預設下載下傳mysql.qcow2鏡像。為了提高安裝進度,可以事先自己下載下傳,儲存到該目錄下/home/devstack/files/,下載下傳位址:http://tarballs.openstack.org/trove/images/ubuntu/mysql.qcow2。
如果你安裝和配置成功了,請立即對該虛拟機平台做個快照,友善以後做各種操作後出現問題時,利于恢複;并避免因宿主系統關機,導緻的不必要問題。
四.Screen的使用
既然,我們一般使用DevStack部署OpenStack環境來進行開發,那麼掌握Screen的使用就是必須的了。
Screen是一個視窗指令,當你需要離開電腦一陣,然後回來再繼續在這個視窗工作,可以啟動一個screen,離開時通過screen -d xxx退出這個視窗,視窗中的任務會在背景執行。回來後可以通過screen -x xxx再次打開視窗繼續工作。
比如scp一個大檔案的時候,如果你不是在screen環境,退出終端或者ssh連接配接的話,這個任務将終止。使用screen後,screen -d這個任務就在背景運作,回來後再ssh連接配接到伺服器,然後screen -x xxx再打開剛才的那個視窗,可以看到任務繼續再執行。
Devstack的所有程序都在 stack使用者的screen中運作,可以通過screen -x stack重新打開視窗,打開後最下邊會有一行工具欄顯示所有在這個視窗中運作的任務,可以通過:
- ctrl+a+n切換下一個任務,
- ctrl+a+p切換前一個任務,
- crtl+a在最近兩次任務之間切換;
- Ctrl+a+d退出目前的screen;
切換到某一個任務時,比如需要重新開機這個服務,可以ctrl+c先停掉,通過向上箭頭查閱指令曆史記錄,第一條應該是啟動這個服務的指令,再次執行,這個任務開始運作。
調試python代碼特别有用,import pdb;pdb.set_trace()到某一個檔案後,然後再次運作這個任務,執行到斷點是,任務視窗中就可以調試這個任務了。至于pdb的用法這裡就不介紹了。
1)列出screens:
$ screen -list
There is a screen on:
stack (Detached)
Socket in /var/run/screen/S-stack.
2)進入screen:
3)中斷screen session:
$ screen -S -X quit
其他資料:
Devstack docs:http://docs.openstack.org/developer/devstack/
作者簡介:徐超,專注于工作和研究基于OpenStack産品研發測試過程的持續內建、持續測試和持續部署/傳遞領域,曾參與建立國内一OpenStack服務提供商從0到1+的測試體系。
2016年4月22日-23日,由CSDN重磅打造的SDCC 2016資料庫&架構技術峰會将在深圳舉行,目前18位講師和議題已全部确認。兩場峰會大牛講師來自百度、騰訊、阿裡、京東、小米、唯品會、滴滴出行、攜程等知名網際網路公司,共同探讨高可用/高并發/高穩定/高流量的系統架構設計、秒殺系統架構、搜尋架構、中小企業架構之道、資料平台系統演進曆程和技術剖析、傳統資料庫與分布式資料庫選型/備份/恢複原理及優化實踐、大資料應用實戰等領域的熱點話題與技術。【目前限時6折,點選這裡搶票】