openstack计算节点的安装(虚拟机先建立桥接)
配置网络在安装完基本的 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
作者微信: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, 都需要用到数据库。所以我们需要创建相关的数据库和用户。
应用数据库 | 数据库用户 | 密码 |
mysql | root | password |
nova | nova | password |
glance | glance | password |
keystone | keystone | password |
horizon | horizon | password |
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) | 用户 | 密码 | |
admin | admin | chenshake | |
service | nova | chenshake | |
glance | chenshake | ||
swift | chenshake |
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个脚本来进行全部的设置
- keystone_data.sh导入用户信息
- 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"
更多推荐
所有评论(0)