天天看點

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伺服器。

四、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使用者運作。

修改devstack目錄權限,讓stack使用者可以運作。

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

保證該使用者下sudo可以免密碼運作,否則腳本執行過程中會出現權限問題。

可以修改/etc/sudoers, 在行 root ALL=(ALL:ALL) ALL 後添加 stack ALL=(ALL) ALL 然後儲存檔案,如下:

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

root切換到 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=
#HOST_IPV6=:db8::

# 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  days to keep things neat.  Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=

# 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=a3d6b56c1f479c8b4e70ab5c2000f5

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

# 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需要進一步解決。

記得手動修改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安裝

運作

Devstack 執行過程:

(1)下載下傳并安裝Openstack運作所需要的系統軟體,大概包括一些python的元件、mysql、rabbitmq-server等

(2)下載下傳openstack元件,包括nova 、keystone、glance、noVNC、horizon等

(3)下載下傳并安裝openstack源碼所依賴的python庫和架構

(4)安裝openstack各元件

(5)啟動各項服務

泡杯茶,等着就可以啦!

由于網速較慢,部落客裝了兩個小時,最後還是哦啦。

安裝成功結果如下:

-- :: | ++lib/lvm:set_lvm_filter:                sed 's/\/dev\///g'
-- :: | ++lib/lvm:set_lvm_filter:                echo -e /dev/loop1
-- :: | +lib/lvm:set_lvm_filter:                pv=loop1
-- :: | +lib/lvm:set_lvm_filter:                new='"a|loop1|", '
-- :: | +lib/lvm:set_lvm_filter:                filter_string='global_filter = [ "a|loop0|", "a|loop1|", '
-- :: | +lib/lvm:set_lvm_filter:                filter_string='global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack'
-- :: | +lib/lvm:set_lvm_filter:                clean_lvm_filter
-- :: | +lib/lvm:clean_lvm_filter:              sudo sed -i 's/^.*# from devstack$//' /etc/lvm/lvm.conf
-- :: | +lib/lvm:set_lvm_filter:                sudo sed -i '/# global_filter = \[*\]/a\    global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack' /etc/lvm/lvm.conf
-- :: | +lib/lvm:set_lvm_filter:                echo_summary 'set lvm.conf device global_filter to: global_filter = [ "a|loop0|", "a|loop1|", "r|.*|" ]  # from devstack'
-- :: | +./stack.sh:echo_summary:               [[ -t  ]]
-- :: | +./stack.sh:echo_summary:               [[ True != \T\r\u\e ]]
-- :: | +./stack.sh:echo_summary:               echo -e set lvm.conf device global_filter to: global_filter = '[' '"a|loop0|",' '"a|loop1|",' '"r|.*|"' ']' '#' from devstack

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

run_process -  secs
apt-get-update -  secs
pip_install -  secs
restart_apache_server -  secs
wait_for_service -  secs
git_timed -  secs
apt-get -  secs



This is your host IP address: .
This is your host IPv6 address: ::
Horizon is now available at http://./dashboard
Keystone is serving at http://.:/
The default users are: admin and demo
The password: admin
[email protected]:/home/ubuntu/devstack$ 
           

八、通路openstack dashboard界面

打開chrome輸入: http://192.168.108.128/dashboard

久違的dashboard:

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

九、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:            [[ 128 -ne 124 ]]
+functions-common:git_timed:            die  'git call failed: [git clone' https://git.openstack.org/openstack/requirements.git '/opt/stack/requirements]'
+functions-common:die:                  local exitcode=
+functions-common:die:                  set +o xtrace
[Call Trace]
./stack.sh::git_clone
/opt/devstack/functions-common::git_timed
/opt/devstack/functions-common::die
[ERROR] /opt/devstack/functions-common: git call failed: [git clone https://git.openstack.org/openstack/requirements.git /opt/stack/requirements]
Error on exit
./stack.sh: line : 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安裝,則:

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

若ascii codec canot decode…,則:

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

參考文章:

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

繼續閱讀