Devstack快速部署OpenStack Mitaka用戶指南(by qiqishuang csdn)

本篇主要闡述通過DeveStack 去部署Openstack(mitaka),對大多數來說安裝部署Openstack 來說是個痛苦的過程,尤其是 OpenStack和它依賴的一些組件在快速發展中,經常出現這個版本組件對不上那個版本 dashboard等情況。如果只是看看或者初期玩玩 OpenStack的話,使用DevStack也是個不錯的辦法。DevStack採用了自動化源碼部署的方式,適用於開發環境的部署和Openstack開發者,單節點,小環境;這裏採用的操作系統爲Ubuntu14.04。

一、操作系統選擇

Devstack目前是支持Ubuntu14.04和CentOS 7,不過全球的OpenStack開發者,大部分都在用Ubuntu 14.04。所以爲了減少麻煩,還是建議你使用Ubuntu 14.04。建議下載官網mininalCD。選擇Ubuntu 14.04 LTS “Trusty Tahr”版本。
https://help.ubuntu.com/community/Installation/MinimalCD
操作系統安裝詳見:
建議用vmware安裝ubuntu mini,nat網絡模式,安裝過程中,多做快照備份。

二、源的選擇

安裝devstack痛苦的其中一個原因,是OpenStack代碼,都需要從github下載,這樣由於網絡的原因,經常導致各種錯誤,簡直讓人崩潰,各種錯誤,也根本無法通過google來解決。

目前國內已經提供了完整的OpenStack的github的mirror。http://git.trystack.cn
這樣Devstack成功概率會大大提高。另外devstack還會下載image,下載的過程也是非常緩慢。trystack也提供大家常用的image下載。http://images.trystack.cn

對於ubuntu的系統,默認安全會從國外的源安裝,導致速度比較慢,可以修改/etc/apt/source.list文件。建議備份原有的。

備份默認源

mv /etc/apt/source.list /etc/apt/source.list.bak
vi /etc/apt/source.list

設置新源

deb http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

更新apt

apt-get update

三、同步時間

http://www.pool.ntp.org是NTP的官方網站,在http://www.pool.ntp.org/zone/cn我們可以找到我們國家的NTP服務器。

ntpdate  cn.pool.ntp.org  

四、devStack下載

下載devstack,並指定穩定版本。

默認無論是Devstack和OpenStack,都是採用Master的代碼進行安裝,這樣經常會出現,今天安裝成功,明天失敗,代碼時刻在變化。所以我們不僅僅要指定OpenStack的版本,還需要指定Devstack的版本,才能提供安裝成功的概率。

apt-get install git  
git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/mitaka  

或者

$git clone https://github.com/openstack-dev/devstack.git  #克隆devstack的Git代碼倉庫  
cd devstack/;git branch -a   #顯示本地分支  
git checkout -b mitaka  origin/stable/mitaka  #切換到指定mitaka分支或標籤 

五、創建stack用戶

目前Devstack腳本已經不支持直接使用root身份運行,你需要創建stack用戶運行。

./home/devstack/tools/create-stack-user.sh

修改devstack目錄權限,讓stack用戶可以運行。

chown -R stack:stack /home/devstack
chmod 777 /dev/pts/0

保證該用戶下sudo可以免密碼運行,否則腳本執行過程中會出現權限問題。
可以修改/etc/sudoers, 在行 root ALL=(ALL:ALL) ALL 後添加 stack ALL=(ALL) ALL 然後保存文件,如下:

sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers 

root切換到 stack 用戶

su stack 

六、配置local.conf文件

建議創建最小化配置文件localrc,即使用非交互模式安裝,內容如下:

[[local|localrc]]

# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

# If the ``*_PASSWORD`` variables are not set here you will be prompted to enter
# values for them by ``stack.sh``and they will be added to ``local.conf``.
ADMIN_PASSWORD=admin
DATABASE_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=$ADMIN_PASSWORD

# Neither is set by default.
HOST_IP=192.168.108.128
#HOST_IPV6=2001:db8::7

# path of the destination log file.  A timestamp will be appended to the given name.
LOGFILE=$DEST/logs/stack.sh.log

# Old log files are automatically removed after 7 days to keep things neat.  Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=2

# Using stable/mitaka branches
# ---------------------------------

# Uncomment these to grab the stable/mitaka branches from the
# repos:
CINDER_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
KEYSTONECLIENT_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NOVACLIENT_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
SWIFT_BRANCH=stable/mitaka

# Swift is now used as the back-end for the S3-like object store. Setting the
# hash value is required and you will be prompted for it if Swift is enabled
# so just set it to something already:
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5

# For development purposes the default of 3 replicas is usually not required.
# Set this to 1 to save some resources:
SWIFT_REPLICAS=1

# The data for Swift is stored by default in (``$DEST/data/swift``),
# or (``$DATA_DIR/swift``) if ``DATA_DIR`` has been set, and can be
# moved by setting ``SWIFT_DATA_DIR``. The directory will be created
# if it does not exist.
SWIFT_DATA_DIR=$DEST/data

其中:

FLOATING_RANGE:
    表示的OpenStack雲實例使用的FloatingIP的範圍,這個範圍應該和虛擬機的IP在同一個網段,但是是當前虛擬機沒有使用的IP的範圍。

FIXED_RANGE:
    表示的在OpenStack上創建雲實例後,該雲實例內部使用的IP,可以不用修改。 
FIXED_NETWORK_SIZE和FLAT_INTERFACE都不用修改,然後設置一下用戶的密碼,其中的ADMIN_PASSWORD待會登陸DashBoard是會用到,不要忘了自己設置的密碼。

或者
直接使用devstack/sample/local.conf進行配置。bug需要進一步解決。

cp /home/devstack/samples/local.conf /home/devstack/local.conf

記得手動修改HOST_IP爲你的虛擬機ip。

此外:
修改pip源可以加快安裝速度,國內可以使用豆瓣源。在/root主目錄下創建.pip文件夾

mkdir ~/.pip
vi ~/.pip/pip.conf

然後在該目錄下創建pip.conf文件編寫如下內容:

[global]
trusted-host =  pypi.douban.com
index-url = http://pypi.douban.com/simple

保存並退出

七、devstack安裝

運行

./stack.sh

Devstack 執行過程:
(1)下載並安裝Openstack運行所需要的系統軟件,大概包括一些python的組件、mysql、rabbitmq-server等
(2)下載openstack組件,包括nova 、keystone、glance、noVNC、horizon等
(3)下載並安裝openstack源碼所依賴的python庫和框架
(4)安裝openstack各組件
(5)啓動各項服務

泡杯茶,等着就可以啦!
由於網速較慢,博主裝了兩個小時,最後還是哦啦。
安裝成功結果如下:

2016-07-21 16:14:58.134 | ++lib/lvm:set_lvm_filter:173                sed 's/\/dev\///g'
2016-07-21 16:14:58.142 | ++lib/lvm:set_lvm_filter:173                echo -e /dev/loop1
2016-07-21 16:14:58.165 | +lib/lvm:set_lvm_filter:173                pv=loop1
2016-07-21 16:14:58.182 | +lib/lvm:set_lvm_filter:174                new='"a|loop1|", '
2016-07-21 16:14:58.196 | +lib/lvm:set_lvm_filter:175                filter_string='global_filter = [ "a|loop0|", "a|loop1|", '
2016-07-21 16:14:58.212 | +lib/lvm:set_lvm_filter:177                filter_string='global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack'
2016-07-21 16:14:58.221 | +lib/lvm:set_lvm_filter:179                clean_lvm_filter
2016-07-21 16:14:58.229 | +lib/lvm:clean_lvm_filter:154              sudo sed -i 's/^.*# from devstack$//' /etc/lvm/lvm.conf
2016-07-21 16:14:58.335 | +lib/lvm:set_lvm_filter:180                sudo sed -i '/# global_filter = \[*\]/a\    global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack' /etc/lvm/lvm.conf
2016-07-21 16:14:58.368 | +lib/lvm:set_lvm_filter:181                echo_summary 'set lvm.conf device global_filter to: global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack'
2016-07-21 16:14:58.381 | +./stack.sh:echo_summary:379               [[ -t 3 ]]
2016-07-21 16:14:58.389 | +./stack.sh:echo_summary:379               [[ True != \T\r\u\e ]]
2016-07-21 16:14:58.431 | +./stack.sh:echo_summary:385               echo -e set lvm.conf device global_filter to: global_filter = '[' '"a|loop0|",' '"a|loop1|",' '"r|.*|"' ']' '#' from devstack

========================
DevStack Components Timed
========================

run_process - 51 secs
apt-get-update - 11 secs
pip_install - 3357 secs
restart_apache_server - 17 secs
wait_for_service - 30 secs
git_timed - 5615 secs
apt-get - 353 secs



This is your host IP address: 192.168.108.128
This is your host IPv6 address: ::1
Horizon is now available at http://192.168.108.128/dashboard
Keystone is serving at http://192.168.108.128:5000/
The default users are: admin and demo
The password: admin
stack@ubuntu:/home/ubuntu/devstack$ 

八、訪問openstack dashboard界面

打開chrome輸入: http://192.168.108.128/dashboard
久違的dashboard:
這裏寫圖片描述

九、devstack安裝過程問題處理

  1. 現象如下:generate-subunit command not found
Cloning into '/opt/stack/requirements'...
fatal: unable to access 'https://git.openstack.org/openstack/requirements.git/': Could not resolve host: git.openstack.org; Unknown error
+functions-common:git_timed:603            [[ 128 -ne 124 ]]
+functions-common:git_timed:604            die 604 'git call failed: [git clone' https://git.openstack.org/openstack/requirements.git '/opt/stack/requirements]'
+functions-common:die:186                  local exitcode=0
+functions-common:die:187                  set +o xtrace
[Call Trace]
./stack.sh:715:git_clone
/opt/devstack/functions-common:537:git_timed
/opt/devstack/functions-common:604:die
[ERROR] /opt/devstack/functions-common:604 git call failed: [git clone https://git.openstack.org/openstack/requirements.git /opt/stack/requirements]
Error on exit
./stack.sh: line 494: generate-subunit: command not found

解決辦法:

sudo apt-get install python-pip
sudo pip install --upgrade pip
sudo pip install -U os-testr
這三條命令可以解決那個問題。

若os-testr無法apt-get安裝,則:
這裏寫圖片描述

若ascii codec canot decode…,則:
這裏寫圖片描述

參考文章:
http://www.chenshake.com/openstack-project-series-3-devstack/
http://blog.csdn.net/myslq/article/details/51837578-series-3-devstack/
http://my.oschina.net/u/2381034/blog/491610?p=1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章