OpenStack Grizzly 多节点部署在 Ubuntu 12.04

我这里用三台机器来部署,你也可以横向扩展计算节点,下面是网络情况:

control node: eth0(172.16.0.51), eth1(192.168.8.51)
network node : eth0(172.16.0.52), eth1(10.10.10.52), eth2(192.168.8.52)
compute node : eth0(172.16.0.53), eth1(10.10.10.53)

管理网络: 172.16.0.0/16
业务网络: 10.10.10.0/24
外部网络: 192.168.8.0/24
下面是引用 mirantis 的一张图:

OpenStack Grizzly 多节点部署在 Ubuntu 12.04



这里我的三个节点的网卡都连在了一个交换机上。因为我没有做 Grizzly 的本地 apt 源,计算节点还需要去公网 apt-get 包,所以我会在计算节点上临时设置一个虚拟网卡让它来装包。

文档更新:

2013.04.01 在计算节点上安装了 nova-compute 和 nova-conductor,而 nova-conductor 只需在控制节点安装就行了。同时发现网络节点在重启机器后,eth2 网卡没有激活,需要手工 up, 添加命令到 rc.local 中。

目录

1 控制节点

1.1 网络设置

1.2 添加源

1.3 MySQL & RabbitMQ

1.4 NTP

1.5 Keystone

1.6 Glance

1.7 Cinder

1.8 Quantum

1.9 Nova

1.10 Horizon

2 网络节点

2.1 网络设置

2.2 添加源

2.3 OpenVSwitch

2.4 Quantum

3 计算节点

3.1 网络设置

3.2 添加源

3.3 OpenVSwitch

3.4 Quantum

3.5 Nova

4 开始创建 vm

控制节点 网络设置 cat /etc/network/interfaces auto eth0 iface eth0 inet static address 172.16.0.51 netmask 255.255.0.0 auto eth1 iface eth1 inet static address 192.168.8.51 netmask 255.255.255.0 gateway 192.168.8.1 dns-nameservers 8.8.8.8 添加源

添加 Grizzly 源,并升级系统

cat > /etc/apt/sources.list.d/grizzly.list << _GEEK_ deb Ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main deb precise-proposed/grizzly main _GEEK_ apt-get update apt-get upgrade apt-get install ubuntu-cloud-keyring MySQL & RabbitMQ

安装 MySQL:

apt-get install mysql-server Python-mysqldb

使用sed编辑 /etc/mysql/my.cnf 文件的更改绑定地址(0.0.0.0)从本地主机(127.0.0.1)
禁止 mysql 做域名解析,防止 连接 mysql 出现错误和远程连接 mysql 慢的现象。
然后重新启动mysql服务.

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf sed -i '44 i skip-name-resolve' /etc/mysql/my.cnf /etc/init.d/mysql restart

安装 RabbitMQ:

apt-get install rabbitmq-server NTP

安装 NTP 服务

apt-get install ntp

配置NTP服务器计算节点控制器节点之间的同步:

sed -i 's/server ntp.ubuntu.com/server ntp.ubuntu.com\nserver 127.127.1.0\nfudge 127.127.1.0 stratum 10/g' /etc/ntp.conf service ntp restart

开启路由转发

vim /etc/sysctl.conf net.ipv4.ip_forward=1 Keystone

安装 Keystone

apt-get install keystone

在 mysql 里创建 keystone 数据库并授权:

mysql -uroot -p create database keystone; grant all on keystone.* to 'keystone'@'%' identified by 'keystone'; quit;

修改 /etc/keystone/keystone.conf 配置文件:

admin_token = debug = True verbose = True [sql] connection = mysql://keystone:keystone@172.16.0.51/keystone #必须写到 [sql] 下面 [signing] token_format = UUID

启动 keystone 然后同步数据库

/etc/init.d/keystone restart keystone-manage db_sync

用脚本导入数据:

用脚本来创建 user、role、tenant、service、endpoint,下载脚本:

wget

修改脚本内容:

ADMIN_PASSWORD=${ADMIN_PASSWORD:-password} #租户 admin 的密码 SERVICE_PASSWORD=${SERVICE_PASSWORD:-password} #nova,glance,cinder,quantum,swift的密码 export SERVICE_TOKEN="www.longgeek.com" # token export SERVICE_ENDPOINT="http://172.16.0.51:35357/v2.0" SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} #租户 service,包含了nova,glance,ciner,quantum,swift等服务 KEYSTONE_REGION=RegionOne KEYSTONE_IP="172.16.0.51" #KEYSTONE_WLAN_IP="172.16.0.51" SWIFT_IP="172.16.0.51" #SWIFT_WLAN_IP="172.16.0.51" COMPUTE_IP=$KEYSTONE_IP EC2_IP=$KEYSTONE_IP GLANCE_IP=$KEYSTONE_IP VOLUME_IP=$KEYSTONE_IP QUANTUM_IP=$KEYSTONE_IP

执行脚本:

sh keystone.sh

设置环境变量:

这里变量对于 keystone.sh 里的设置:

# cat > /root/export.sh << _GEEK_ export OS_TENANT_NAME=admin #这里如果设置为 service 其它服务会无法验证. export OS_USERNAME=admin export OS_PASSWORD=password export OS_AUTH_URL=http://172.16.0.51:5000/v2.0/ export OS_REGION_NAME=RegionOne export SERVICE_TOKEN=www.longgeek.com export SERVICE_ENDPOINT=http://172.16.0.51:35357/v2.0/ _GEEK_ # echo 'source /root/export.sh' >> /root/.bashrc # source /root/export.sh

验证 keystone 的安装,做一个简单测试:

apt-get install curl openssl curl :35357/v2.0/endpoints -H 'x-auth-token: ' | python -mjson.tool

更多精彩内容请看下一页

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/681e19a446a81ba3320db8cbdfadf061.html