天天看點

初探OpenStack Mitaka二.部署

中原標準時間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,如下圖所示:
初探OpenStack Mitaka二.部署

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

初探OpenStack Mitaka二.部署

2. Horizon有哪些變化

1)Keystone——身份管理變化

Mitaka版本界面中,新增加了組、域和角色的操作功能。原來隻能通過指令行操作的,現在也能通過界面來實作了。

組:就是把使用者放在一個組裡,一個使用者可以屬于多個組,這樣可以友善進行權限管理。

角色:也就是給建立項目的使用者,配置設定member、admin的roles。

域:将使用者和其他組使用的基礎設施相隔離,具體管理的有組群組下的使用者。

如下圖所示

初探OpenStack Mitaka二.部署

2)Cinder——雲硬碟一緻性組

初探OpenStack Mitaka二.部署

3)Horizon——添加開發者(Bootstrap主題)面闆

Mitaka版本新增加的Bootstrap主題預覽面闆功能,可以讓使用者在Default和Bootstrap兩種主題中自由切換,并且可以在Bootstrap主題中進行自由配置。

初探OpenStack Mitaka二.部署

4)Nova——主機集合

主機集合,就是把計算節點分組,一個計算節點隻能屬于一個組。這樣我們在資源排程上可以更加靈活,根據需求把建立的虛拟機放到相應的主機集合裡。主機集合,使用者是看不到的,是管理者通過設定,排程生效。通常,适用于大規模的環境。

初探OpenStack Mitaka二.部署

5)Nova——中繼資料定義

可以讓使用者導入自定義的中繼資料和删除等。

初探OpenStack Mitaka二.部署

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:

初探OpenStack Mitaka二.部署

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折,點選這裡搶票】

繼續閱讀