[转载]Openstack Essex安装系列

系列文章源自陈沙克百度博客

 

Openstack Essex安装:规划(1)

http://hi.baidu.com/chenshake/blog/item/7ddc56fb86dc2144024f5641.html

上次我翻译老外的文档,实在是太长,这次我就把整个过程分成几部分,这样看起来也方便。

这次是采用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)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Openstack Essex安装:准备(2)

转自:http://hi.baidu.com/chenshake/blog/item/da9c65f0767025e37831aa5f.html

1:下载ubuntu 12.04. 服务器版本

ubuntu12.04正式版本,需要4月26号发布,目前是beta2

http://mirrors.ustc.edu.cn/ubuntu-releases/12.04/ubuntu-12.04-server-amd64.iso

 

2:安装OS

安装系统倒是简单。由于我的服务器是两块硬盘,

1块硬盘是装操作系统,另外一块是给nova-volume使用。nova-volume需要一个单独的分区或者一块硬盘。

IP地址的设置,可以等装完系统再修改,问题不大。最小化安装,只需要安装ssh server就可以。

装完系统后。

apt-get update

apt-get upgrade

更新源里的包,更新系统。确保你装的是最新版本的包。

为了方便,我所有操作都是root权限下进行。

sudo passwd

就可以给root设置密码。用root登陆。

3:网络

# cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, 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 primary 0 -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-utils rabbitmq-server memcached python-memcache kvm libvirt-bin euca2ools

 

6:安装数据库

安装mysql

过程中,会提示你输入root密码。

apt-get install -y mysql-server python-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 Essex安装:keystone(3)

http://hi.baidu.com/chenshake/blog/item/69add780975886f79023d931.html

在Openstack里,keystone的位置非常重要,所有的组件的认证授权,都需要经过他。

1:安装keystone

apt-get install -y keystone python-keystone python-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:password@172.16.10.6: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

下载脚本

 wget http://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"
export SERVICE_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
export OS_AUTH_URL="http://localhost:5000/v2.0/"

检查一下环境变量是否生效
# export | grep OS_

输出下面内容就表示正常
declare -x OS_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
export OS_AUTH_URL="http://localhost:5000/v2.0/"

export EC2_URL=$(keystone catalog --service ec2 | 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,再登陆就生效。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Openstack Essex安装:glance(4)

http://hi.baidu.com/chenshake/blog/item/0ef97d59fe5e5e0a2934f00c.html

Glance是用作镜像管理使用。

1:安装软件

apt-get install -y glance glance-api glance-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:password@172.16.10.6/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, process 13327

 

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提供的最新的稳定的镜像。

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

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

这个时候

glance index

就可以看到image

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 Openstack Essex安装:nova(5)

http://hi.baidu.com/chenshake/blog/item/b2b3113353c961d81b4cffe6.html

1:安装nova相关组件

apt-get install -y nova-api nova-cert nova-common nova-compute nova-compute-kvm nova-doc nova-network nova-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:password@172.16.10.6/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-network nova-compute nova-api nova-objectstore nova-scheduler novnc nova-volume nova-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

看到这样,就表示你的nova服务正常。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 Openstack Essex安装:Dashboard(6)

http://hi.baidu.com/chenshake/blog/item/3083282a2e219c185243c116.html

对于安装和配置来说,这是最简单的,装完就马上可以使用。以前还需要配置一下使用memcache,现在默认就启用,基本什么都不需要配置。

安装dashbaord

apt-get install libapache2-mod-wsgi openstack-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设定

申请一个floating IP,也就是虚拟机的公网IP

 

和虚拟机关联

看看结果

这个时候,虚拟机就有公网的IP 172.16.10.33。

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:~$ 

 

这个时候,你就可以。剩下的就是如何分区,格式化,挂载。

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

系列参考http://hi.baidu.com/chenshake/blog

posted @ 2012-05-14 09:15  念槐聚  阅读(236)  评论(0编辑  收藏  举报