一、作業系統
Devstack目前是支援 Ubuntu 14.04 (Trusty),Fedora 22 (或 Fedora 23) 和 CentOS/RHEL 7,不過全球的OpenStack開發者,大部分都在用Ubuntu 14.04。相關的資料也是基于Ubuntu14.04的比較多,是以還是建議你使用Ubuntu 14.04。
為了正确解決安裝時的依賴問題,建議使用最小化安裝的受支援的作業系統。
詳細的介紹 http://docs.openstack.org/developer/devstack/
注意:這是幾個月之前寫的了,目前最新的版本已經是ocata,不過devstack安裝步驟都是一樣的。
二、設定源
對于ubuntu的系統,預設安全會從國外的源安裝,導緻速度比較慢,可以修改/etc/apt/source.list檔案,相關源清單可從http://wiki.ubuntu.org.cn/擷取。
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-backports main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://cn.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
# Canonical 合作夥伴和附加
deb http://archive.canonical.com/ubuntu/ trusty partner
deb http://extras.ubuntu.com/ubuntu/ trusty main
允許更新
sudo apt-get update
三、更新時間
http://www.pool.ntp.org是NTP的官方網站,在這上面我們可以找到我們國家的NTP伺服器
ntpdate 2.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分支或标簽
五、配置設定權限
目前Devstack腳本已經不支援直接使用root身份運作,你需要建立stack使用者運作
cd /home/devstack/tools/
./create-stack-user.sh
使用這個腳本建立使用者stack,依然需要手工給使用者添權重限。
chown -R stack:stack /home/devstack
此外我們可以手動建立使用者配置設定權限。
建立 stack 使用者,添加 stack 使用者權限。
sudo groupadd stack
sudo useradd -g stack -s /bin/bash -d /opt/stack -m stack
保證該使用者下sudo可以免密碼運作,否則腳本執行過程中會出現權限問題。
可以修改/etc/sudoers, 在行 root ALL=(ALL:ALL) ALL 後添加 stack ALL=(ALL) ALL 然後儲存檔案,如下
sudo echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
切換到 stack 使用者
sudo su - stack
六、配置localrc
devstack目錄下的一些檔案描述
stack.sh #自動化部署的入口;判斷是否存在localrc檔案; 否,進入互動模式; 是,進入配置模式(如果需要輸入輸入stack.sh需要的參數,如:資料庫的密碼、Rabbit MQ的密碼、Service TOKEN 等)
localrc #配置檔案;傳入stack.sh的參數;nova部署在哪個節點,使用者名密碼是什麼
openrc #環境變量腳本;在執行openstack指令時要導入一些環境變量 如:export OS_USERNAME = admin
unstack.sh #解除安裝腳本
lib #每個服務的自動化安裝腳本;通常存放nova,swift等自動化安裝腳本,手動安裝時執行的所有指令;每一個openstack服務對應一個檔案(以下對相關檔案作了簡要說明)
apache (Web 服務)
Swift (對象存儲的元件)
Glance (鏡像管理)
Horizon (提供了一個子產品化的webbased使用者界面)
heat(應用的自動化部署AWS cloudformation)
ceilometer(監控和計費)
sahara(BigData-as-a-Service #BDaaS,将hadoop部署在openstack的虛拟機上)
ironic(PXE+IPMI,實體節點的自動化部署)
trove(Database-as-a-service,将資料庫部署在openstack的虛拟機上)
tempest(openstack單元測試架構)
opendaylight(開源的sdn控制器)
ldap(輕量型目錄通路協定,與keystone整合,實作多級使用者的鑒權)
database、databases(postgresql/mysql,預設将選擇mysql)
nova、nova_plugins (可以說是一套虛拟化管理程式,還可以管理網絡和存儲;下面是支援的一些虛拟化管理程式)
functions-libvirt hypervisor-baremetal hypervisor-fake hypervisor-ironic hypervisor-libvirt hypervisor-openvz hypervisor-vsphere hypervisor-xenserver
neutron、neutron_plugins、neutron_thirdparty(網絡管理的元件,neutron未來将取代Nova相關網絡相關内容)
cinder、cinder_plugins (存儲管理的元件。Cinder存儲管理主要是指虛拟機的存儲管理)
建議建立最小化配置檔案localrc,即使用非互動模式安裝,内容如下:
ADMIN_PASSWORD=secret
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
#FIXED_RANGE=172.31.1.0/24
#FLOATING_RANGE=192.168.20.0/25
#HOST_IP=10.3.4.5
或者直接使用devstack/sample/local.conf,
cp /home/devstack/samples/local.conf /home/devstack/local.conf
記得手動修改HOST_IP
七、安裝devstack
安裝devstack痛苦的其中一個原因,是OpenStack代碼,都需要從github下載下傳,這樣由于網絡的原因,經常導緻各種錯誤,簡直讓人崩潰,各種錯誤,也根本無法通過google來解決。
目前國内已經提供了完整的OpenStack的github的mirror。
http://git.trystack.cn
這樣Devstack成功機率會大大提高。 另外devstack還會下載下傳image,下載下傳的過程也是非常緩慢。trystack也提供大家常用的image下載下傳。
http://images.trystack.cn
要使用trystack源,隻需要往上一步的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
#OFFLINE=True
RECLONE=True
# Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"
此外,修改pip源可以加快安裝速度,國内可以使用豆瓣源 在/root主目錄下建立.pip檔案夾
mkdir ~/.pip
然後在該目錄下建立pip.conf檔案編寫如下内容:
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
然後運作
./stack.sh
等待安裝部署即可。
參考文章: http://www.chenshake.com/openstack-project-series-3-devstack/
http://my.oschina.net/u/2381034/blog/491610?p=1