作者微信:15013593099 欢迎交流


配置网络

在安装完基本的 Ubuntu 11.04 Server 系统后升级和更新整个系统,安装完 bridge-utils 包后重启系统:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install bridge-utils
$ sudo reboot


配置网桥:

$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
     address 10.1.0.44
     netmask 255.255.255.0
     network 10.1.0.0
     broadcast 10.1.0.255
     gateway   10.1.0.1
     dns_nameservers 8.8.8.8 

auto br100
iface br100 inet static
     bridge_ports eth0
     bridge_stp off
     bridge_maxwait 0
     bridge_fd 0
     address 192.168.0.1
     netmask 255.255.255.0
     broadcast 192.168.0.255

重启网络

/etc/init.d/networking restart

安装时钟服务:

1 安装ntp时钟同步服务器

apt-get install -y ntp ntpdate
2 同步时间

/etc/init.d/ntp stop
ntpdate ntp.api.bz

3 编辑/etc/ntp.conf:替换为如下内容:

restrict 127.0.0.1
restrict 192.168.1.0 mask 255.255.255.0 nomodify
server 127.127.1.0
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
4重启ntp服务

/etc/init.d/ntp restart

5RabbitMQ和Memcache 等

RabbitMQ是用来做调度使用。Memcache是给Dashboard使用。

apt-get install -y rabbitmq-server memcached python-memcache kvm libvirt-bin

设置hostname

# cat /etc/hostname 
node17

# cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       node17.chenshake.com    node17

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

# hostname
node17

# hostname -f
node17.chenshake.com


设置ISCSI (可选)

这是为Nova-volume服务使用的。不过目前nova-volume并不稳定,大家测试一下就可以。未来的Folsom版本,将会有新的组件来替代Nova-volume。

如果你不测试nova volume,可以不安装

apt-get -y install tgt
nova-compute节点,需要安装ISCSI客户端

apt-get install -y open-iscsi open-iscsi-utils

Nova-volume (可选)

如果你没有单独的分区,那么就不建议你测试,采用文件模拟的方式,基本是不可行。

我安装系统的时候,创建了一个nova-volume的分区,我先umount,再创建一个volume,名字为nova-volumes。nova的默认使用的volume的名字就是叫 nova-volumes. 如果你希望改变,就需要指定在nova.conf 文件里。

# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
# vgcreate nova-volumes /dev/sdb
  Volume group "nova-volumes" successfully created
#sudo vgs
VG                          #PV   #LV    #SN    Attr      VSize     VFree

nova_volume                 1      0       0   wz--n-     20.00g    20.00g

MYSQL

在Openstack组件里,Nova,Keystone, Glance, Horizon, 都需要用到数据库。所以我们需要创建相关的数据库和用户。

应用数据库数据库用户密码
mysqlrootpassword
novanovapassword
glanceglancepassword
keystonekeystonepassword
horizonhorizonpassword

1:安装

Openstack都是Python写的,所以你需要python-mysqldb,安装过程,会提示你输入mysql的root的密码。

apt-get install -y mysql-server python-mysqldb

2:配置

编辑/etc/mysql/my.cnf, 允许网络访问mysql

#bind-address           = 127.0.0.1
bind-address            = 0.0.0.0
重启mysql服务

service mysql restart
创建相关数据库

mysql -uroot -ppassword
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';
CREATE DATABASE horizon;
GRANT ALL PRIVILEGES ON horizon.* TO 'horizon'@'%'IDENTIFIED BY 'password';
quit

三:Keystone

Keystone是Openstack的核心,所有的组件,都需要通过keystone进行认证和授权。

租户(tenant)用户密码 
adminadminchenshake 
servicenovachenshake 
 glancechenshake 
 swiftchenshake 

1:安装

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

2:配置

编辑/etc/keystone/keystone.conf,需要修改

  • keystone的默认token是ADMIN,我这里修改chenshake
  • 默认是采用sqlite连接,我们需要改成mysql
[DEFAULT]
#bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token = chenshake

[sql]
#connection = sqlite:var/lib/keystone/keystone.db
connection = mysql://keystone:password@10.1.199.17/keystone

或者运行下面命令

sed -i 's/ADMIN/chenshake/g' /etc/keystone/keystone.conf
sed -i '/sqlite/s/^/#/' /etc/keystone/keystone.conf
sed -i '/sqlite/a\connection = mysql://keystone:password@10.1.199.17/keystone' \
/etc/keystone/keystone.conf

重启服务

service keystone restart

同步keystone数据库

keystone-manage db_sync

keystone的数据库,需要导入数据和endpoint,你可以一步一步用命令行导入,可以参考keystone白皮书

为了方便,你可以直接使用下面2个脚本来进行全部的设置

  1. keystone_data.sh导入用户信息
  2. endpoints.sh 设置endpoint

Keystone Data

wget http://www.chenshake.com/wp-content/uploads/2012/07/keystone_data.sh_.txt
mv keystone_data.sh_.txt keystone_data.sh
chmod +x keystone_data.sh

对于keystone_data.sh 脚本,默认的登陆dashboard的密码是:chenshake,Token是chenshake。你可以根据你的情况进行调整。

第一行是登陆dashboard的密码。

第三行是上面设置的Keystone的Token

ADMIN_PASSWORD=${ADMIN_PASSWORD:-chenshake}
SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD}
export SERVICE_TOKEN="chenshake"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service}
ENABLED_SERVICES="swift"

运行脚本:

./keystone_data.sh

没任何输出,就表示正确,可以通过下面命令检查

echo $?

显示0,就表示脚本正确运行,千万不要重复运行脚本。

Endpoint 导入

wget http://www.chenshake.com/wp-content/uploads/2012/07/endpoints.sh_.txt
mv endpoints.sh_.txt endpoints.sh
chmod +x endpoints.sh

这个脚本运行,需要使用不少参数

./endpoints.sh -m 10.1.199.17 -u keystone -D keystone \
-p password -T chenshake -K 10.1.199.17 \
-R RegionOne -E "http://localhost:35357/v2.0" -S 10.1.199.17

 

参数说明

-m mysql_hostname
-u mysql_username
-D mysql_database
-p mysql_password
-K keystone 服务器IP
-R keystone_region
-E keystone_endpoint_url
-S swift proxy节点IP
-T keystone_token

正常运行,会输出一堆内容。

设置环境变量

export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=chenshake
export OS_AUTH_URL=http://localhost:5000/v2.0/

检查当前的环境变量
root@node12:~# export | grep OS_
declare -x OS_AUTH_URL="http://localhost:5000/v2.0/"
declare -x OS_PASSWORD="chenshake"
declare -x OS_TENANT_NAME="admin"
declare -x OS_USERNAME="admin"











Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐