他提供的至少要求是三个节点,每个节点上跑ubuntu12.04或ubuntu13.04,我的是12.04server版,每个节点的ip地址及网卡数量如下所示:
由于我只有四台惠普服务器,所以我开了一台xenserver服务器,在上面跑了control Node和Network Node,其他的3个compute节点分别跑了三台服务器上。以下是提供的一个网络部署图:
大家可以根据自己的需要更改自己的ip地址。在network节点上用了三张网卡,但是应该只要两张也是可以的,只是在后面进行网桥及相关设置的时候要进行相应的修改,由于我的network节点上跑在xenserver上,所以三个网卡是可以满足的。因此我的拓扑结构和上图基本差不多,就是IP地址和compute节点数目不一样而已。
现在让我们从control节点,一步步往下走。
1.control节点的部署
首先获取安装软件的权限。如果你当前的ubuntu是12.04,那么请执行下面两行代码:
apt-get install -y ubuntu-cloud-keyring
echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.list
然后运行下面的代码,确保下面安装的时候能够安装到最新的软件版本。
apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y
下面进行control节点网络的配置部署,下面是提供方案中的/etc/network/interface(ubuntu的网卡配置文件)的一个网卡配置样例:
#For Exposing OpenStack API over the internet
auto eth1
iface eth1 inet static
address 192.168.100.51
netmask 255.255.255.0
gateway 192.168.100.1
dns-nameservers 8.8.8.8
#Not internet connected(used for OpenStack management)
auto eth0
iface eth0 inet static
address 10.10.10.51
netmask 255.255.255.0
其中只要求一个网卡可以联网即可。配置好后,用
service networking restart
重新启动网络服务来让修改生效。
1.1 MySQL & RabbitMQ安装
配置好网络后就要安装mysql数据库和rabbitmq消息管理队列了。
下面是mysql安装步骤:
apt-get install -y mysql-server python-mysqldb
修改mysql的配置文件my.cnf,让其支持远程登陆:
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
service mysql restart
mysql -u root -p
#Keystone
CREATE DATABASE keystone;
GRANT ALL ON keystone.* TO 'keystoneUser'@'%' IDENTIFIED BY 'keystonePass';
#Glance
CREATE DATABASE glance;
GRANT ALL ON glance.* TO 'glanceUser'@'%' IDENTIFIED BY 'glancePass';
#Quantum
CREATE DATABASE quantum;
GRANT ALL ON quantum.* TO 'quantumUser'@'%' IDENTIFIED BY 'quantumPass';
#Nova
CREATE DATABASE nova;
GRANT ALL ON nova.* TO 'novaUser'@'%' IDENTIFIED BY 'novaPass';
#Cinder
CREATE DATABASE cinder;
GRANT ALL ON cinder.* TO 'cinderUser'@'%' IDENTIFIED BY 'cinderPass';
quit;
至此,mysql数据库配置完成。大家可以根据自己的需要修改上面要用到的参数,如对应组件的用户密码。
1.2rabbitmq安装
apt-get install -y rabbitmq-server
装好后,下一步就是时间同步服务器的安装 配置:
apt-get install -y ntp
然后安装网桥bridge-utils,与vlan:
apt-get install -y vlan bridge-utils
并打开
IP_Forwarding:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
# To save you from rebooting, perform the following
sysctl net.ipv4.ip_forward=1
1.3keystone安装配置
现在安装配置keystone组件。keystone组件是openstack的认证服务组件,在我开始学习openstack部署的时候,这个地方经常出问题。而参考国内网上别人的说明,说有各种错误,其中一个就是说下面的那个样例脚本不能执行两次。其实现在看来遇到的那些问题都是一些初级问题。后面要用到的那个脚本只是建立一个租客(tenant)以及相关的租客账户密码和对应的 endpoints。你多次运行只是在往你的数据库里面填东西而已,不小心运行多次了也么多大关系,因为有些数据是不会重复填入数据库的,但是确实会引起一些问题。想当初这个地方纠结了很久,现在告诉大家,如果你不小心多次运行了,而且出错了,那么不要急,你清空刚刚那个mysql中的keystone数据库,然后从来一次就可以了。以下是安装步骤:
apt-get install -y keystone
安装后,用vim编辑
/etc/keystone/keystone.conf 文件,并设置好mysql的连接url。其中用户密码就是你在上面安装mysql的时候配置的keystone数据库的账号密码:
connection = mysql://keystoneUser:keystonePass@10.10.10.51/keystone
配置好后,重新启动keystone服务,并将其元数据同步到数据库:
service keystone restart
keystone-manage db_sync
以下就是用来产生keystone样例数据的脚本了。脚本不难,也就是用keystone的命令添加一些租客和对应的账号密码已经endpoints罢了,大家有时间可以慢慢看看,这是脚本的地址:
#Modify the **HOST_IP** and **EXT_HOST_IP** variables before executing the scripts
wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_MultiNode/KeystoneScripts/keystone_basic.sh
wget https://raw.github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/OVS_MultiNode/KeystoneScripts/keystone_endpoints_basic.sh
chmod +x keystone_basic.sh
chmod +x keystone_endpoints_basic.sh
./keystone_basic.sh
./keystone_endpoints_basic.sh
注意:在用wget下载到脚本后,请仔细看看上面的账号密码,如果修改了上面的账号密码,那么在后面进行配置相关文件的时候要填入你自己的账号密码。
因为每次的用keystone的命令,需要携带账号密码作为参数认证,所以最好配置在临时的环境变量里面,比如像推荐一样,写在一个文件内,每次都进行source:
vim creds
#Paste the following:
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin_pass
export OS_AUTH_URL="http://192.168.100.51:5000/v2.0/"
# 要用命令时,source一次即可
source creds
最后用下面的命令来验证keystone的安装是否成功(成功的话会列出刚刚脚本建立的用户列表):
keystone user-list
显示如下结果表示成功:
至此keystone安装完成。
1.4 glance安装
接下来我们安装glance组件,glance组件是openstack中用于管理镜像的组件。镜像的上传与索引查询都通过这个组件进行管理。
apt-get install -y glance
安装成功后用vim编辑 /etc/glance/glance-api-paste.ini文档,修改其中的认证部分:
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = service_pass
其中上面中的账号密码对应于刚刚在keystone安装过程中配置的账号密码。如果上面修改了,这里也要进行修改。
接着用vim 编辑/etc/glance/glance-api.conf 并修改其中的mysql连接和paste_deploy:
sql_connection = mysql://glanceUser:glancePass@10.10.10.51/glance
[paste_deploy]
flavor = keystone
接着修改/etc/glance/glance-registry.conf文件中的mysql连接参数和paste_deploy:
sql_connection = mysql://glanceUser:glancePass@10.10.10.51/glance
[paste_deploy]
flavor = keystone
然后重启glance的所有服务,并进行数据库同步:
service glance-api restart; service glance-registry restart
glance-manage db_sync
安装配置完后用下面的命令添加一个镜像,这条命令上传的镜像是网络镜像,你可以上传自己的镜像.:
glance image-create --name myFirstImage --is-public true --container-format bare --disk-format qcow2 --location https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
其中--location可以用" 接镜像文件地址"来代替,具体的命令可以用glance help来查询。镜像可以在网上自己下载,也可以用以前在vmware上面做好的。但是要根据相应的镜像格式进行参数设置。镜像的格式支持raw,vhd,vmdk,iso等,disk-format支持bare,aki,ovf等。具体的详细说明请看“
官方镜像上传与支持的镜像说明”。
镜像上传后,可以用下面的命令来查看是否上传成功(我上传过vmdk的,iso的都成功了):
glance image-list
成功结果如下所示:
大家可以看到我已经上传过三个镜像了,其中一个vmdk就是我用VMware以前做的。其他的两个都是我自己在网上下载的,可以在G版上正常运行。有些镜像运行的时候会提示说找不到可启动的硬盘,不要慌,这个不是你安装问题,这个是你的镜像问题。有可能是你上传的镜像的时候用的参数不对,如果出现此问题请认真查看我刚刚提供的官方镜像说明。
1.5 quantum-server安装部署
在control节点上我们只需要安装quantum-server即可,不需要安装其他的agent等插件,这些插件安装在network节点上。老样子,用apt-get安装:
apt-get install -y quantum-server
安装后编辑ovs 的配置文件/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini:
#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@10.10.10.51/quantum
#Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
你只需要修改mysql连接即可,如果想知道如何改OVS,可以查阅官方文档。这里不需要修改。
接下来配置quantum的认证部分,编辑/etc/quantum/api-paste.ini
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
继续编辑/etc/quantum/quantum.conf文件:
[keystone_authtoken]
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing
配置完以后请重启服务:
service quantum-server restart
1.6 nova组件安装配置
现在我们安装nova的部分组件,因为control节点不充当compute的角色,所以不需要安装nova-compute。nova-compute组件安装在compute节点上。
apt-get install -y nova-api nova-cert novnc nova-consoleauth nova-scheduler nova-novncproxy nova-doc nova-conductor
安装完后在
/etc/nova/api-paste.ini文件中配置认证服务:
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = service_pass
signing_dirname = /tmp/keystone-signing-nova
# Workaround for https://bugs.launchpad.net/nova/+bug/1154809
auth_version = v2.0
接着修改文件
/etc/nova/nova.conf,这个文件很重要,主要是用来管理compute节点的。后面的compute几点也有这个文件,但是又区别,两个文件中有个地方是有重要的区别的,在后文中我会指出。在此处只需按下面的配置文件根据自己的ip地址修改即可:
[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler
rabbit_host=10.10.10.51
nova_url=http://10.10.10.51:8774/v1.1/
sql_connection=mysql://novaUser:novaPass@10.10.10.51/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
# Auth
use_deprecated_auth=false
auth_strategy=keystone
# Imaging service
glance_api_servers=10.10.10.51:9292
image_service=nova.image.glance.GlanceImageService
# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.100.51:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=10.10.10.51
vncserver_listen=0.0.0.0
# Network settings
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://10.10.10.51:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=service_pass
quantum_admin_auth_url=http://10.10.10.51:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
#Metadata
service_quantum_metadata_proxy = True
quantum_metadata_proxy_shared_secret = helloOpenStack
# Compute #
compute_driver=libvirt.LibvirtDriver
# Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900
同步nova数据库:
nova-manage db sync
用下面的命令重启所有的nova服务:
cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done
最后用下面的命令来检查自己的配置是否已经成功:
nova-manage service list
下图是我自己的运行结果,我的结果是正常的,有个节点我已经去掉,所以只有两个compute节点:
大家注意看划红线的地方,打xxx就表示服务没起来,这是我特意关闭的。所以我现在就只有两个compute节点了。
1.7 volume管理组件cinder安装部署
以前的volume用的是nova-volume管理,在G版和F版上用了cinder组件进行管理。这里也要小心,如果这里没有配置好,那么在后面创建卷的时候就会变成一直在创建这个状态。如果真不幸,你没成功,出现了如前所述的错误,那么重来一次不会出问题的。再出问题可以试试重新启动,我的就是这么解决的。
apt-get install -y cinder-api cinder-scheduler cinder-volume iscsitarget open-iscsi iscsitarget-dkms
配置
iscsi 服务:
sed -i 's/false/true/g' /etc/default/iscsitarget
重启这些服务:
service iscsitarget start
service open-iscsi start
配置cinder的认证服务:
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
service_protocol = http
service_host = 192.168.100.51
service_port = 5000
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = cinder
admin_password = service_pass
signing_dir = /var/lib/cinder
接着修改
/etc/cinder/cinder.conf 文件:
[DEFAULT]
rootwrap_config=/etc/cinder/rootwrap.conf
sql_connection = mysql://cinderUser:cinderPass@10.10.10.51/cinder
api_paste_config = /etc/cinder/api-paste.ini
iscsi_helper=ietadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
iscsi_ip_address=10.10.10.51
数据库同步:
cinder-manage db sync
最后穿件volumegroup,并且以
cinder-volumes命名,命名是有要求的,不能随便命令,在官方文档有说明:
dd if=/dev/zero of=cinder-volumes bs=1 count=0 seek=2G
losetup /dev/loop2 cinder-volumes
fdisk /dev/loop2
#Type in the followings:
n
p
1
ENTER
ENTER
t
8e
w
有兴趣的可以看看这些命令的正真含义,不然只知道照着做,不知道为什么这么做。
再执行下面的命令:
pvcreate /dev/loop2
vgcreate cinder-volumes /dev/loop2
重启所有的cinder服务:
cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i restart; done
至此cinder相关服务安装完毕。下面是我的volume截图:
看到红圈没,那个就是我第一次没成功留下的问题,删不掉。后来重新执行了上面的创建volumegroup相关命令,重启就可以了。
1.8 horizon安装
最后让我们进入control节点最后一个组件的安装。horizon组件只是给openstack提供了一个网页版的可视化调用api操作,即dashboard,目前我正在看horizon的源代码。horizon用的是django框架,如果大家有兴趣学习,一定要先知道django是什么东西,否则看起来很费劲。我有一本django的pdf书,网上下载的,感觉还行。我看了几天基本就知道了是什么回事,又想要的童鞋,请留下Email。
apt-get install -y openstack-dashboard memcached
默认安装用的ubuntu的主题,自我感觉还行,大家可以用下面的命令去除这个主题,而采用默认主题:
dpkg --purge openstack-dashboard-ubuntu-theme
重启horizon服务
service apache2 restart; service memcached restart
到这里为止,所有的control服务已经安装完成。接下来我们就要进入network节点的安装部署了。
2 network节点的安装部署
2.1 更新源
如果是12.04请执行下面的命令:
apt-get install -y ubuntu-cloud-keyring
echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main >> /etc/apt/sources.list.d/grizzly.li
接着更新:
apt-get update -y
apt-get upgrade -y
apt-get dist-upgrade -y
2.2 安装时间同步服务
apt-get install -y ntp
用下面的命令配置服务,其中对应的ip地址请修改成自己的control节点ip地址:
#Comment the ubuntu NTP servers
sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf
#Set the network node to follow up your conroller node
sed -i 's/server ntp.ubuntu.com/server 10.10.10.51/g' /etc/ntp.conf
service ntp restart
2.3 安装 vlan bridge-utils服务
apt-get install -y vlan bridge-utils
用下面的命令进行配置:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
# To save you from rebooting, perform the following
sysctl net.ipv4.ip_forward=1
2.4 网络配置
下面是给出的一个网卡IP地址配置方案,用了三张网卡:
# OpenStack management
auto eth0
iface eth0 inet static
address 10.10.10.52
netmask 255.255.255.0
# VM Configuration
auto eth1
iface eth1 inet static
address 10.20.20.52
netmask 255.255.255.0
# VM internet Access
auto eth2
iface eth2 inet static
address 192.168.100.52
netmask 255.255.255.0
2.5 OpenVSwitch的第一部分配置
之所以说是第一部分配置,是因为后面还要进行配置。
安装OpenVSwitch:
apt-get install -y openvswitch-switch openvswitch-datapath-dkms
建立网桥:
#br-int will be used for VM integration
ovs-vsctl add-br br-int
#br-ex is used to make to VM accessible from the internet
ovs-vsctl add-br br-ex
安装Quantum openvswitch agent, l3 agent 和 dhcp agent:
apt-get -y install quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent quantum-metadata-agent
修改 /etc/quantum/api-paste.ini文件,配置认证服务:
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
配置OVS插件 /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini :
#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@10.10.10.51/quantum
#Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.20.20.52
enable_tunneling = True
接着配置下面的这个文件 /etc/quantum/metadata_agent.ini:
# The Quantum user information for accessing the Quantum API.
auth_url = http://10.10.10.51:35357/v2.0
auth_region = RegionOne
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
# IP address used by Nova metadata server
nova_metadata_ip = 10.10.10.51
# TCP Port used by Nova metadata server
nova_metadata_port = 8775
metadata_proxy_shared_secret = helloOpenStack
在 /etc/quantum/quantum.conf 中设置rabbitmq的地址为control节点:
rabbit_host = 10.10.10.51
#And update the keystone_authtoken section
[keystone_authtoken]
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing
重启所有quantum服务:
cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; done
2.7 OpenVSwitch配置
修改网卡配置如下 /etc/network/interfaces :
# VM internet Access
auto eth2
iface eth2 inet manual
up ifconfig $IFACE 0.0.0.0 up
up ip link set $IFACE promisc on
down ip link set $IFACE promisc off
down ifconfig $IFACE down
添加
eth2 到 br-ex:
ovs-vsctl add-port br-ex eth2
执行上面这条命令后,会导致无法上网,但是这并不影响openstack,所以不需要理会,只要照做就行了。
3 compute节点配置
上面的都配置完以后就可以做最后节点的配置了。现在我们进入compute节点的配置。
和上面其他的节点一样,首先就是升级更新,这里就不啰嗦了。
开始安装NTP服务,并将服务器指向control节点。
apt-get install -y ntp
#Comment the ubuntu NTP servers
sed -i 's/server 0.ubuntu.pool.ntp.org/#server 0.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 1.ubuntu.pool.ntp.org/#server 1.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 2.ubuntu.pool.ntp.org/#server 2.ubuntu.pool.ntp.org/g' /etc/ntp.conf
sed -i 's/server 3.ubuntu.pool.ntp.org/#server 3.ubuntu.pool.ntp.org/g' /etc/ntp.conf
#Set the compute node to follow up your conroller node
sed -i 's/server ntp.ubuntu.com/server 10.10.10.51/g' /etc/ntp.conf
service ntp restart
时间同步服务安装完成。
接着安装 vlan bridge-utils:
apt-get install -y vlan bridge-utils
并进行配置:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
# To save you from rebooting, perform the following
sysctl net.ipv4.ip_forward=1
下面是网卡配置,大家可以根据自己需要改变IP地址:
# OpenStack management
auto eth0
iface eth0 inet static
address 10.10.10.53
netmask 255.255.255.0
# VM Configuration
auto eth1
iface eth1 inet static
address 10.20.20.53
netmask 255.255.255.0
如果你用的是实体机,且选择了用KVM做虚拟机,请先测试自己的cpu是否支持虚拟化技术,因为KVM需要有硬件的支持,下面是安装测试软件,以及如何测试的方法:
apt-get install -y cpu-checker
kvm-ok
接下来安装libvirt和kvm,如下命令:
apt-get install -y kvm libvirt-bin pm-utils
用vim修改 /etc/libvirt/qemu.conf 文件:
cgroup_device_acl = [
"/dev/null", "/dev/full", "/dev/zero",
"/dev/random", "/dev/urandom",
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
"/dev/rtc", "/dev/hpet","/dev/net/tun"
]
删除默认的虚拟网桥:
virsh net-destroy default
virsh net-undefine default
修改 /etc/libvirt/libvirtd.conf 文件:
listen_tls = 0
listen_tcp = 1
auth_tcp = "none"
修改/etc/init/libvirt-bin.conf文件:
env libvirtd_opts="-d -l"
继续修改文件 /etc/default/libvirt-bin:
libvirtd_opts="-d -l"
重启libvirt服务:
service libvirt-bin restart
安装OpenVSwitch
apt-get install -y openvswitch-switch openvswitch-datapath-dkms
建立网桥:
#br-int will be used for VM integration
ovs-vsctl add-br br-int
quantum安装
安装openvswitch:
apt-get -y install quantum-plugin-openvswitch-agent
根据自己的实际网络环境修改 /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini 文件:
#Under the database section
[DATABASE]
sql_connection = mysql://quantumUser:quantumPass@10.10.10.51/quantum
#Under the OVS section
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.20.20.53
enable_tunneling = True
在文件/etc/quantum/quantum.conf中配置好正确的rabbitmq服务器地址,即control地址,如果你的rabbitmq放在control上的话:
rabbit_host = 10.10.10.51
#And update the keystone_authtoken section
[keystone_authtoken]
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = quantum
admin_password = service_pass
signing_dir = /var/lib/quantum/keystone-signing
重启服务:
service quantum-plugin-openvswitch-agent restart
Nova安装
现在进入compute节点最重要的服务组件:
apt-get install -y nova-compute-kvm
在文件 /etc/nova/api-paste.ini中配置认证服务:
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = 10.10.10.51
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = nova
admin_password = service_pass
signing_dirname = /tmp/keystone-signing-nova
# Workaround for https://bugs.launchpad.net/nova/+bug/1154809
auth_version = v2.0
配置 /etc/nova/nova-compute.conf 文件:
[DEFAULT]
libvirt_type=kvm
libvirt_ovs_bridge=br-int
libvirt_vif_type=ethernet
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
libvirt_use_virtio_for_bridges=True
如果你的是在虚拟机上安装计算节点, 注意把libvirt_type改为QEMU。
修改 /etc/nova/nova.conf文件,参数如下,可以直接覆盖原来文件:
[DEFAULT]
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/run/lock/nova
verbose=True
api_paste_config=/etc/nova/api-paste.ini
compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler
rabbit_host=10.10.10.51
nova_url=http://10.10.10.51:8774/v1.1/
sql_connection=mysql://novaUser:novaPass@10.10.10.51/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
# Auth
use_deprecated_auth=false
auth_strategy=keystone
# Imaging service
glance_api_servers=10.10.10.51:9292
image_service=nova.image.glance.GlanceImageService
# Vnc configuration
novnc_enabled=true
novncproxy_base_url=http://192.168.100.51:6080/vnc_auto.html
novncproxy_port=6080
vncserver_proxyclient_address=10.10.10.53
vncserver_listen=0.0.0.0
# Network settings
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://10.10.10.51:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=service_pass
quantum_admin_auth_url=http://10.10.10.51:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
#Metadata
service_quantum_metadata_proxy = True
quantum_metadata_proxy_shared_secret = helloOpenStack
# Compute #
compute_driver=libvirt.LibvirtDriver
# Cinder #
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900
cinder_catalog_info=volume:cinder:internalURL
注意:vncserver_proxyclient_address的地址是你的compute节点地址,也就是你的现在在配置的IP地址,但是上面的那个novncproxy_base_url要填control节点的地址。这个就是和control节点所不一样的地方了。
配置后,重启服务:
cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done
用下面的命令检查服务是否成功:
nova-manage service list
下面是我的运行后截图:
至此所有的服务安装成功!
下面是我的horizon运行截图:
有问题请留言。