Ubuntu 12.04 下 Openstack Essex安裝過程詳解 (轉給自己)

Ubuntu 12.04 下 Openstack Essex安裝過程詳解

規劃

 

Ubuntu 12.04 (“PrecisePangolin”) 安裝 OpenStack Essex http://www.linuxidc.com/Linux/2012-05/60581.htm

這次是採用Ubuntu 12.04 正式版本,在一臺物理服務器上安裝。機器會有兩塊硬盤。

2塊網卡  2塊硬盤,另外一塊給volume使用。

 

1:數據庫規劃

 

nova,keystone,glance,都需要用到數據庫。對於keystone和glance,默認是採用sqlite,文檔全部會改成使用mysql作爲數據庫。

 

所以我們需要創建3個數據庫

 

數據庫管理員 密碼

nova nova password

keystone keystone password

glance glance password

 

2:keystone 的token

默認keystone的token:ADMIN

爲了方便,我們把keystone的token設置成:1234567890

admin_token = 1234567890

 

3:租戶和管理員

我們需要創建一個admin的租戶,這個租戶下有一個admin的管理員,管理員的密碼是admin

這其實也是你web登陸的用戶名和密碼。

 

admin_tenant_name = admin

admin_user = admin

admin_password = admin

 

4:網絡規劃

Eth0: 公網IP:172.16.10.6

Eth1: 不需要設置IP

Floating IP: 172.16.10.32/27  (虛擬機的公網IP)

Fix IP:10.10.10.32/27 (虛擬機的固定IP)

 

1:下載Ubuntu 12.04. 服務器版本

ubuntu 12.04正式版本, 下載見http://www.linuxidc.com/Linux/2012-04/59239.htm

 

2:安裝OS

安裝系統倒是簡單。由於我的服務器是兩塊硬盤,

1塊硬盤是裝操作系統,另外一塊是給nova-volume使用。nova-volume需要一個單獨的分區或者一塊硬盤。

IP地址的設置,可以等裝完系統再修改,問題不大。最小化安裝,只需要安裝ssh server就可以。

裝完系統後。

apt-get update

apt-get upgrade

更新源裏的包,更新系統。確保你裝的是最新版本的包。

爲了方便,我所有操作都是root權限下進行。

sudo passwd root

 

就可以給root設置密碼。用root登陸。

 

3:網絡

 

# cat /etc/network/interfaces

# This file describes the network interfacesavailable on your system

# and how to activate them. For moreinformation, see interfaces(5).

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

auto eth0

iface eth0 inet static

       address 172.16.10.6

       netmask 255.255.0.0

       network 172.16.0.0

       broadcast 172.16.255.255

       gateway 172.16.10.1

       # dns-* options are implemented by the resolvconf package, if installed

       dns-nameservers 114.114.114.114

       dns-search test.com

 

4:創建nova-volume

我要對第二塊硬盤創建一個vg,名字爲nova-volume

parted /dev/sdb --script mklabel gpt

parted /dev/sdb --script -- mkpart primary0 -1

parted /dev/sdb --script print

pvcreate /dev/sdb1

vgcreate nova-volumes /dev/sdb1

5:安裝必備軟件

我把要用的軟件都裝上,不需要一個一個安裝

 

apt-get install -y  ntp tgt open-iscsi open-iscsi-utilsrabbitmq-server memcached python-memcache kvm libvirt-bin euca2ools

 

6:安裝數據庫

安裝mysql

過程中,會提示你輸入root密碼。

apt-get install -y mysql-serverpython-mysqldb

讓mysql支持外部訪問

sed -i 's/127.0.0.1/0.0.0.0/g'/etc/mysql/my.cnf 

service mysql restart

創建nova,keystone,glance數據庫

mysql -uroot -p

CREATE DATABASE nova;

GRANT ALL PRIVILEGES ON nova.* TO'nova'@'%' IDENTIFIED BY 'password';

CREATE DATABASE glance;

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'IDENTIFIED BY 'password';

CREATE DATABASE keystone;

GRANT ALL PRIVILEGES ON keystone.* TO'keystone'@'%' IDENTIFIED BY 'password';

quit

 

在Openstack裏,keystone的位置非常重要,所有的組件的認證授權,都需要經過他。

1:安裝keystone

apt-get install -y keystone python-keystonepython-keystoneclient

2:配置keystone

需要修改 /etc/keystone/keystone.conf 3個地方

默認定義的token就是ADMIN,改成:1234567890

 

[DEFAULT]

bind_host = 0.0.0.0

public_port = 5000

admin_port = 35357

#admin_token = ADMIN

admin_token =1234567890

mysql的連接,默認是採用sqlite

 

[sql]

#connection =sqlite:////var/lib/keystone/keystone.db

connection=mysql://keystone:[email protected]:3306/keystone

idle_timeout = 200

 

修改catalog

 

 

[catalog]

#driver =keystone.catalog.backends.sql.Catalog

driver =keystone.catalog.backends.templated.TemplatedCatalog

template_file =/etc/keystone/default_catalog.templates

 重啓服務和同步數據庫

service keystone restart

keystone-manage db_sync

 

3: 導入數據

 

這個比較有技術含量。通過修改devstack的keystone_data.sh 腳本。實現導入數據。

 

http://www.hastexo.com/system/files/user/4/keystone_data.sh_.txt

 

下載腳本

 

 wgethttp://www.hastexo.com/system/files/user/4/keystone_data.sh_.txt

mv keystone_data.sh_.txt keystone_data.sh

 

讓腳本可運行

 

chmod +x keystone_data.sh

 

運行腳本前, 你需要修改腳本。修改兩個地方

 

第一個是登錄dashboard的admin的密碼

 

第二個就是keystone的token

 

#ADMIN_PASSWORD=${ADMIN_PASSWORD:-hastexo}

ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}

SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}

#export SERVICE_TOKEN="hastexo"

export SERVICE_TOKEN="1234567890"

exportSERVICE_ENDPOINT="http://localhost:35357/v2.0"

SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}

 

運行腳本

 

#./keystone_data.sh

 

 

 

4:檢查keystone是否運行正常

 

設置環境變量,

 

export OS_TENANT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

exportOS_AUTH_URL="http://localhost:5000/v2.0/"

 

檢查一下環境變量是否生效

# export | grep OS_

 

輸出下面內容就表示正常

declare -xOS_AUTH_URL="http://localhost:5000/v2.0/"

declare -x OS_PASSWORD="admin"

declare -x OS_TENANT_NAME="admin"

declare -x OS_USERNAME="admin"

 

運行

 

keystone user-list

 

 

5:設置系統的環境變量

 

環境變量設置,如果退出後,就需要再次設置,爲了後面試驗的方便,我修改系統的環境變量

 

修改/etc/profile , 在最後面添加下面內容

 

export OS_TENANT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

exportOS_AUTH_URL="http://localhost:5000/v2.0/"

 

export EC2_URL=$(keystone catalog --serviceec2 | awk '/ publicURL / { print $4 }')

export CREDS=$(keystone ec2-credentials-create)

export EC2_ACCESS_KEY=$(echo"$CREDS" | awk '/ access / { print $4 }')

export EC2_SECRET_KEY=$(echo"$CREDS" | awk '/ secret / { print $4 }')

 

 退出ssh,再登陸就生效。

 

Glance是用作鏡像管理使用。

 

1:安裝軟件

 

apt-get install -y glance glance-apiglance-client glance-common glance-registry python-glance

 

 

 

2:配置/etc/glance/glance-api-paste.ini

 

修改文件最後3行,這些設置都是keystone導入數據的時候設置的。

 

admin_tenant_name = %SERVICE_TENANT_NAME%

admin_user = %SERVICE_USER%

admin_password = %SERVICE_PASSWORD%

改成

 

admin_tenant_name = admin

admin_user = admin

admin_password = admin

 

 

 

3:設置/etc/glance/glance-registry-paste.ini

 

也是修改文件最後3行,和上面是一樣的。

 

admin_tenant_name = %SERVICE_TENANT_NAME%

admin_user = %SERVICE_USER%

admin_password = %SERVICE_PASSWORD%

 

改成

 

admin_tenant_name = admin

admin_user = admin

admin_password = admin

 

4:配置/etc/glance/glance-registry.conf

 

修改

 

#sql_connection =sqlite:////var/lib/glance/glance.sqlite

sql_connection =mysql://glance:[email protected]/glance

 

 

 

在末尾添加兩行

 

[paste_deploy]

flavor = keystone

5:配置/etc/glance/glance-api.conf

 

在末尾添加兩行

 

[paste_deploy]

flavor = keystone

6:同步數據庫

 

目前glance 需要手工同步數據庫。

 

glance-manage version_control 0

 glance-manage db_sync         

/usr/lib/python2.7/dist-packages/glance/registry/db/migrate_repo/versions/003_add_disk_format.py:47:SADeprecationWarning: useexisting is deprecated.  Use extend_existing.

 useexisting=True)

 

 

重啓服務

# service glance-api restart &&service glance-registry restart

glance-api stop/waiting

glance-api start/running, process 13321

stop: Unknown instance:

glance-registry start/running, process13327

 

 

 

7:驗證glance服務是否正常

 

glance index

 

沒任何輸出表示正常。

 

# glance --version

glance 2012.1

 

8:下載鏡像並上傳

 

Ubuntu官方專門提供image,不過一定要注意

 

這些鏡像,都是必須使用密鑰登錄,直接用用戶名密碼是無法的登錄的。

 

另外ubuntu有兩個地方提供類似的image,

 

http://cloud-images.ubuntu.com/precise/

 

http://uec-images.ubuntu.com/releases/

 

我估計ubuntu會推薦大家在http://cloud-images.ubuntu.com下載image。到底他們間有啥區別,還沒搞清楚。ubuntu目前還在更新cloud-image裏面的內容。

 

下載鏡像

 

http://cloud-images.ubuntu.com/precise/current/

 

這應該是ubuntu提供的最新的穩定的鏡像。

 

wgethttp://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img

 

上傳鏡像

glance add name="Ubuntu 12.04 cloudimgamd64" is_public=true container_format=ovf disk_format=qcow2 </root/precise-server-cloudimg-amd64-disk1.img

 

這個時候

 

glance index

 

就可以看到image

 

1:安裝nova相關組件

 

apt-get install -y nova-api nova-certnova-common nova-compute nova-compute-kvm nova-doc nova-networknova-objectstore nova-scheduler nova-volume python-nova python-novaclient  nova-consoleauth python-novnc novnc

 

2:配置/etc/nova/nova.conf

 

把nova.conf 原來的內容刪除掉。直接貼下面內容。重點需要注意的是,

 

如果你是在虛擬機裏測試Openstack。你需要把默認的虛擬化引擎從kvm改成qemu。

 

nova的配置,等下再補上。

 

[DEFAULT]

dhcpbridge_flagfile=/etc/nova/nova.conf

dhcpbridge=/usr/bin/nova-dhcpbridge

logdir=/var/log/nova

state_path=/var/lib/nova

lock_path=/var/lock/nova

allow_admin_api=true

use_deprecated_auth=false

auth_strategy=keystone

scheduler_driver=nova.scheduler.simple.SimpleScheduler

s3_host=172.16.10.6

ec2_host=172.16.10.6

rabbit_host=172.16.10.6

cc_host=172.16.10.6

nova_url=http://172.16.10.6:8774/v1.1/

routing_source_ip=172.16.10.6

glance_api_servers=172.16.10.6:9292

image_service=nova.image.glance.GlanceImageService

iscsi_ip_prefix=10.10.10

sql_connection=mysql://nova:[email protected]/nova

ec2_url=http://172.16.10.6:8773/services/Cloud

keystone_ec2_url=http://172.16.10.6:5000/v2.0/ec2tokens

api_paste_config=/etc/nova/api-paste.ini

libvirt_type=kvm

libvirt_use_virtio_for_bridges=true

start_guests_on_host_boot=true

resume_guests_state_on_host_boot=true

novnc_enable=true

novncproxy_base_url=http://172.16.10.6:6080/vnc_auto.html

vncserver_proxyclient_address=127.0.0.1

vncserver_listen=127.0.0.1

network_manager=nova.network.manager.FlatDHCPManager

public_interface=eth0

flat_interface=eth1

flat_network_bridge=br0

floating_range=172.16.10.32/27

flat_injected=False

force_dhcp_release=true

iscsi_helper=tgtadm

connection_type=libvirt

root_helper=sudo nova-rootwrap

verbose=False

 

 

 

 

 

3:配置/etc/nova/api-paste.ini

 

也是修改文件最後3行,

 

admin_tenant_name = %SERVICE_TENANT_NAME%

admin_user = %SERVICE_USER%

admin_password = %SERVICE_PASSWORD%

 

改成

 

admin_tenant_name = admin

admin_user = admin

admin_password = admin

 

4:停止和重啓nova相關服務

 

for a in libvirt-bin nova-networknova-compute nova-api nova-objectstore nova-scheduler novnc nova-volumenova-consoleauth; do service "$a" restart; done

 

 

 

5:同步數據庫

 

nova-manage db sync

 

沒有任何輸出,就表示正常。

 

6:創建網絡

 

nova-manage network create private--fixed_range_v4=10.10.10.32/27 --num_networks=1 --bridge=br100--bridge_interface=eth1 --network_size=32

 

nova-manage floating create--ip_range=172.16.10.32/27

 

 

 

檢查nova服務

 

nova-manage service list

 

 

對於安裝和配置來說,這是最簡單的,裝完就馬上可以使用。以前還需要配置一下使用memcache,現在默認就啓用,基本什麼都不需要配置。

 

安裝dashbaord

 

apt-get install libapache2-mod-wsgiopenstack-dashboard

 

 

 

這個時候,你就可以登錄dashboard

 

http://172.16.10.6

 

user:admin

 

pass:admin

 

使用Dashboard

 

登陸後,如何創建和使用虛擬機呢。是web界面,如果沒用過EC2,估計你還是比較暈。下面是8步驟來讓你熟悉Dashboard使用。

 

設置安全組

 

創建keypair

 

創建虛擬機

 

vpc訪問

 

floating IP設定

 

SecureCRT訪問虛擬機

 

給虛擬機添加硬盤

 

虛擬機創建快照

 

 

 

1:設置安全組 (security group)

 

這是相當於打開防火牆端口,允許ssh和ping虛擬機。這是重點,不設置這個,你基本是無法訪問到虛擬機。經常有朋友問,虛擬機在跑着,如何訪問。

 

2:創建keypair

 

創建完後,會把私鑰下載到本地,公鑰會注入到你創建的虛擬機裏,你必須用私鑰登陸。私鑰的後綴是:pem

 

登陸的用戶名是:ec2。注意,Ubuntu提供的所有image,你是必須用私鑰登陸。

 

 

3:創建虛擬機

 

這就是比較簡單,正常創建就可以,會用到keypair和安全組,建議別選擇tiny類型。

 

tiny,硬盤空間是0,表示當初做image的時候是多大,他就是多大。應該就只有2G的空間大小。另外我這種類型,我無法attach volume。

 

 

4:vnc訪問

5:floating IP設定

 

 

6:SecureCRT訪問虛擬機

 

ScureCRT6.0,已經支持pem私鑰,直接使用就可以

 

 

 

 

 

 

 

 

這就完成了登陸ssh。

 

 7:設置volume

 

先創建一個10G的volume

 

 

ssh到虛擬機後

 

ubuntu@test:~$ ls /dev/vd*

/dev/vda /dev/vda1  /dev/vdb  /dev/vdc

ubuntu@test:~$

 

 

 

這個時候,你就可以。剩下的就是如何分區,格式化,掛載。

發佈了36 篇原創文章 · 獲贊 16 · 訪問量 38萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章