一、DevStack介紹
? ? Devstack目前是支持Ubuntu16.04和CentOS 7,而且Devstack官方建議使用Ubuntu16.04,所以我們使用Ubuntu 16.04進行安裝。
? ? 默認無論是Devstack和OpenStack,都是采用Master的代碼進行安裝,這樣經常會出現,今天安裝成功,明天失敗,代碼時刻在變化。所以我們不僅僅要指定OpenStack的版本,還需要指定Devstack的版本,才能提供安裝成功的概率。
二、DevStack的安裝
1、環境準備
? ? 我使用的操作系統為Ubuntu 16.04的版本,默認的軟件包源是國外的,速度相對來說比較慢,所以我們修改文件/etc/apt/sources.list,使用如下命令更改:
sed?-i?'s/us.archive.ubuntu.com/cn.archive.ubuntu.com/g'?/etc/apt/sources.list sed?-i?'s/security.ubuntu.com/cn.archive.ubuntu.com/g'?/etc/apt/sources.list
? ?更新一下源。
apt-get?update
2、下載devstack
? ? 安裝devstack痛苦的其中一個原因,是OpenStack代碼,都需要從github下載,這樣由于網絡的原因,經常導致各種錯誤,簡直讓人崩潰,各種錯誤,目前國內已經提供了完整的OpenStack的github的mirror:http://git.trystack.cn,這樣Devstack成功概率會大大提高。
? ? 另外devstack還會下載image,下載的過程也是非常緩慢。trystack也提供大家常用的image下載:http://images.trystack.cn。
? ? 目前官方github上面保留著三個穩定的版本,我們這邊安裝Ocata版。
apt-get?install?git git?clone?http://git.trystack.cn/openstack-dev/devstack.git?-b?stable/ocata
3、創建stack用戶
? ? 目前Devstack腳本已經不支持直接使用root身份運行,你需要創建stack用戶運行。
cd?devstack/tools/ ./create-stack-user.sh
? ?修改devstack目錄權限,讓stack用戶可以運行。
cd?../.. mv?devstack?/opt/stack? chown?-R?stack:stack?/opt/stack/devstack
4、配置pip源
? ? OpenStack很多組件需要從pip源下載,默認是國外的源,我們需要設置為國內的源,以便可以快速的進行配置,在root和stack的加目錄下面都配置一下。
? ? 首先分別在家目錄下面都創建.pip的目錄,然后在目錄下面創建文件pip.conf,內容如下:
mkdir?.pip cat?>>?.pip/pip.conf?<<EOF [global] trusted-host?=??pypi.douban.com index-url?=?http://pypi.douban.com/simple EOF
5、配置文件
su?-?stack cd?devstack cp?samples/local.conf?.
? ?對文件local.conf進行簡單修改,如下內容:
[[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD LOGFILE=$DEST/logs/stack.sh.log LOGDAYS=2 SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5 SWIFT_REPLICAS=1 SWIFT_DATA_DIR=$DEST/data#?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
6、安裝
? ? 中途可能會出現多次錯誤,大部分都是因為網絡的原因,重復運行命令即可。
./stack.sh
三、驗證
? ? 經過長時間的等待之后,根據網絡狀態,大約1個小時的時間,出現下面的界面即可是安裝完成。
? ?然后我們進行登錄查看。
? ? 可以看到登錄成功,服務都運行正常。
附錄:
1、All-In-One Single Machine
[[local|localrc]] FLOATING_RANGE=192.168.1.224/27 FIXED_RANGE=10.11.12.0/24 FIXED_NETWORK_SIZE=256 FLAT_INTERFACE=eth0 ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD#?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
Set?FLOATING_RANGE?to a range not used on the local network, i.e. 192.168.1.224/27. This configures IP addresses ending in 225-254 to be used as floating IPs.
Set?FIXED_RANGE?and?FIXED_NETWORK_SIZE?to configure the internal address space used by the instances.
Set?FLAT_INTERFACE?to the Ethernet interface that connects the host to your local network. This is the interface that should be configured with the static IP address mentioned above.
Set the administrative password. This password is used for the?admin?and?demo?accounts set up as OpenStack users.
Set the MySQL administrative password. The default here is a random hex string which is inconvenient if you need to look at the database directly for anything.
Set the RabbitMQ password.
Set the service password. This is used by the OpenStack services (Nova, Glance, etc) to authenticate with Keystone.
2、Multi-Node Lab
Configure Cluster Controller
[[local|localrc]] HOST_IP=192.168.42.11 FLAT_INTERFACE=eth0 FIXED_RANGE=10.4.128.0/20 FIXED_NETWORK_SIZE=4096 FLOATING_RANGE=192.168.42.128/25 MULTI_HOST=1 LOGFILE=/opt/stack/logs/stack.sh.log ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD#?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
Configure Compute Nodes
[[local|localrc]] HOST_IP=192.168.42.12????#?change?this?per?compute?node FLAT_INTERFACE=eth0 FIXED_RANGE=10.4.128.0/20 FIXED_NETWORK_SIZE=4096 FLOATING_RANGE=192.168.42.128/25 MULTI_HOST=1 LOGFILE=/opt/stack/logs/stack.sh.log ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD DATABASE_TYPE=mysql SERVICE_HOST=192.168.42.11 MYSQL_HOST=$SERVICE_HOST RABBIT_HOST=$SERVICE_HOST GLANCE_HOSTPORT=$SERVICE_HOST:9292 ENABLED_SERVICES=n-cpu,q-agt,n-api-meta,c-vol,placement-client NOVA_VNC_ENABLED=True NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html" VNCSERVER_LISTEN=$HOST_IP VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN#?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
另外一個模板
devstack-controller
[[local|localrc]] MULTI_HOST=true? HOST_IP=172.18.2.100?#?management?&?api?network? LOGFILE=/opt/stack/logs/stack.sh.log #?Credentials? ADMIN_PASSWORD=secret MYSQL_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz #?enable?neutron-ml2-vlan? disable_service?n-net? enable_service?q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-***? Q_AGENT=linuxbridge? ENABLE_TENANT_VLANS=True? TENANT_VLAN_RANGE=3001:4000? PHYSICAL_NETWORK=default LOG_COLOR=False? LOGDIR=$DEST/logs? SCREEN_LOGDIR=$LOGDIR/screen #?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
devstack-compute
[[local|localrc]] MULTI_HOST=true? HOST_IP=172.18.2.101?#?management?&?api?network #?Credentials? ADMIN_PASSWORD=secret MYSQL_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz #?Service?information SERVICE_HOST=172.18.2.100 MYSQL_HOST=$SERVICE_HOST? RABBIT_HOST=$SERVICE_HOST? GLANCE_HOSTPORT=$SERVICE_HOST:9292? Q_HOST=$SERVICE_HOST? KEYSTONE_AUTH_HOST=$SERVICE_HOST? KEYSTONE_SERVICE_HOST=$SERVICE_HOST CEILOMETER_BACKEND=mongodb? DATABASE_TYPE=mysql ENABLED_SERVICES=n-cpu,q-agt,neutron? Q_AGENT=linuxbridge? ENABLE_TENANT_VLANS=True? TENANT_VLAN_RANGE=3001:4000? PHYSICAL_NETWORK=default #?vnc?config? NOVA_VNC_ENABLED=True? NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html" VNCSERVER_LISTEN=$HOST_IP? VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN LOG_COLOR=False? LOGDIR=$DEST/logs? SCREEN_LOGDIR=$LOGDIR/screen #?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
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?