openstack Grizzly多节点部署方案

        从F版就开始用 github上推荐的一个多节点部署方案,但是由于之前出现问题没有把耐心放的足够多,在F版上遇到的网络问题没有解决。刚好现在这个阶段有时间,于是又重新按这里提供的多节点部署G版方案,把G版部署到了物理机上,目前我的这个集    群已经正常运行。以下就按这里提供的方案,将其装载翻译过来,并指出我自己在安装过程中遇到的问题。

    他提供的至少要求是三个节点,每个节点上跑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


装好后,要建立相关的数据库,如nova,keystone,glance等等,下面是建数据库以及对应数据库的账户密码:

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


2.6 quantunm安装部署
安装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运行截图:


有问题请留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值