接手把手教你安装OpenStack——Ocata安装指南(上)
五、网络服务
安装并配置控制节点
1、前提条件
创建数据库,与之前类似:
$ mysql -u root -p
MariaDB [(none)] CREATE DATABASE neutron;
MariaDB [(none)]> GRANT ALL PRIVILEGESON neutron.* TO 'neutron'@'localhost'
IDENTIFIED BY 'NEUTRON_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGESON neutron.* TO 'neutron'@'%'
IDENTIFIED BY 'NEUTRON_DBPASS';
获取admin权限:
$ . admin-openrc
创建服务认证:
创建neutron用户
$ openstack user create --domain default --password-prompt neutron
给neutron添加admin角色:
$ openstack role add --project service --user neutron admin
创建neutron服务实体:
$ openstack service create --name neutron
--deion "OpenStack Networking" network
创建网络服务API端口:
$ openstack endpoint create --region RegionOne
network public http://controller:9696
$ openstack endpoint create --region RegionOne
network internal http://controller:9696
$ openstack endpoint create --region RegionOne
network admin http://controller:9696
2、配置网络选项
选项1:部署一个最简单的网络,仅支持实例和公共网络的连接。
选项2:在选项1的基础上,增加了3层服务,支持实例连接到私有网络。
这里我们选择选项2,选项2的部署包括选项1。
在控制节点上进行以下操作:
安装组件
# yum install openstack-neutron openstack-neutron-ml2
openstack-neutron-linuxbridge ebtables
配置服务器组件
编辑/etc/neutron/neutron.conf文件,并完成以下配置:
在[database]选项中,配置数据库连接:
[database]
# ...
connection=mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
替换掉NEUTRON_DBPASS密码。注释掉或者删除[database]其他参数。
在[DEFAULT]选项中,开启ML2插件,路由服务以及overlapping IP地址,配置消息队列连接:
[DEFAULT]
# ...
core_plugin=ml2
service_plugins=router
allow_overlapping_ips=true
transport_url=rabbit://openstack:RABBIT_PASS@controller
替换掉RABBIT_PASS
在[DEFAULT]选项和[keystone_authtoken]选项中,配置认证服务连接
[DEFAULT]
# ...
auth_strategy=keystone
[keystone_authtoken]
# ...
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=neutron
password=NEUTRON_PASS
替换掉NEUTRON_PASS
注释或删除[keystone_authtoken]中的其他选项。
在[DEFAULT]和[nova]选项中,配置网络来通知计算机网络拓扑的变换:
[DEFAULT]
# ...
notify_nova_on_port_status_changes=true
notify_nova_on_port_data_changes=true
[nova]
# ...
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=nova
password=NOVA_PASS
替换掉NOVA_PASS
在[oslo_concurrency]选项中,配置锁定地址:
[oslo_concurrency]
# ...
lock_path=/var/lib/neutron/tmp
配置ML2
编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件,在ml2选项中,开启flat,VLAN,以及VXLAN网络:
[ml2]
# ...
type_drivers=flat,vlan,vxlan
开启VXLAN私有网络:
[ml2]
# ...
tenant_network_types=vxlan
开启桥接和2层机制
[ml2]
# ...
mechanism_drivers=linuxbridge,l2population
Linux桥接代理仅支持VXLAN覆盖网络,开启端口安全扩展驱动:
[ml2]
# ...
extension_drivers=port_security
在选项中;配置公共虚拟网络作为扁平网络:
[ml2_type_flat]
# ...
flat_networks=provider
为私有网络配置VXLAN网络识别范围
[ml2_type_vxlan]
# ...
vni_ranges=1:1000
在[securitygroup]选项中,开启ipset增加安全组规则的高效性;
[securitygroup]
# ...
enable_ipset=true
配置Linux 桥接代理
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
在[linux_bridge]选项中,映射公共虚拟网络到公共物理网络接口;
[linux_bridge]
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME
将PROVIDER_INTERFACE_NAME替换为公共网络网卡名字
在选项中,开始VXLAN覆盖网络,配置物理网络的IP地址,启用L2。
[vxlan]
enable_vxlan=true
local_ip=OVERLAY_INTERFACE_IP_ADDRESS
l2_population=true
将OVERLAY_INTERFACE_IP_ADDRESS替换为管理网络IP地址,即控制节点IP。(没有配置管理网络)
在[securitygroup]选项中,启用安全组并配置Linux桥接iptables防火墙驱动;
[securitygroup]
# ...
enable_security_group=true
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
配置3层代理
编辑/etc/neutron/l3_agent.ini文件
在[DEFAULT]选项中,配置Linuxbridge驱动接口
[DEFAULT]
# ...
interface_driver=linuxbridge
配置DHCP代理
编辑/etc/neutron/dhcp_agent.ini文件
在[DEFAULT]选项中,配置inuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
[DEFAULT]
# ...
interface_driver=linuxbridge
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=true
配置元数据代理
在[DEFAULT]选项中,配置元数据主机和共享密码
[DEFAULT]
# ...
nova_metadata_ip=controller
metadata_proxy_shared_secret=METADATA_SECRET
替换METADATA_SECRET为合适的密码
配置计算服务来使用网络
编辑/etc/nova/nova.conf文件
在[neutron]选项中,配置连接参数,启用元数据代理,配置密码:
[neutron]
# ...
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=neutron
password=NEUTRON_PASS
service_metadata_proxy=true
metadata_proxy_shared_secret=METADATA_SECRET
替换NEUTRON_PASS,METADATA_SECRET
3、完成安装
建立符号链接
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
上传数据库
# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
重启计算API服务
# systemctl restart openstack-nova-api.service
启动网络服务并配置开机启动
# systemctl enable neutron-server.service
neutron-linuxbridge-agent.service neutron-dhcp-agent.service
neutron-metadata-agent.service
# systemctl start neutron-server.service
neutron-linuxbridge-agent.service neutron-dhcp-agent.service
neutron-metadata-agent.service
对于网络选项2,也要启用3层服务
# systemctl enable neutron-l3-agent.service
# systemctl start neutron-l3-agent.service
安装并配置计算节点1、安装组件
# yum install openstack-neutron-linuxbridge ebtables ipset
配置公共组件
编辑/etc/neutron/neutron.conf文件
在[database]中,注释掉任何的连接,因为计算节点不直接连接数据库。
在[DEFAULT],配置消息队列连接
[DEFAULT]
# ...
transport_url=rabbit://openstack:RABBIT_PASS@controller
替换RABBIT_PASS
在[DEFAULT]和[keystone_authtoken]选项中
[DEFAULT]
# ...
auth_strategy=keystone
[keystone_authtoken]
# ...
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=neutron
password=NEUTRON_PASS
替换NEUTRON_PASS密码
在[oslo_concurrency]选项中,配置锁定路径
[oslo_concurrency]
# ...
lock_path=/var/lib/neutron/tmp
在计算节点上配置网络选项2
配置Linux桥接代理
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件
在[linux_bridge]部分,映射公共虚拟网络到公共物理网络接口:
[linux_bridge]
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME
把PROVIDER_INTERFACE_NAME替换为物理网卡名字。
在[vxlan]部分,启用VXLAN覆盖网络,配置物理网络IP地址,启用l2_population:
[vxlan]
enable_vxlan=true
local_ip=OVERLAY_INTERFACE_IP_ADDRESS
l2_population=true
在[securitygroup]部分,启用安全组并配置Linux桥接iptables防火墙驱动:
[securitygroup]
# ...
enable_security_group=true
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
为计算节点配置网络服务:
编辑/etc/nova/nova.conf文件
在[neutron]部分,配置连接参数;
[neutron]
# ...
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=neutron
password=NEUTRON_PASS
替换NEUTRON_PASS
完成安装
重启计算服务:
# systemctl restart openstack-nova-compute.service
启动Linux桥接代理并配置开机启动:
# systemctl enable neutron-linuxbridge-agent.service
# systemctl start neutron-linuxbridge-agent.service
验证操作
获取admin权限
$ . admin-openrc
列出加载的扩展来验证neutron-server是否成功运行:
$ openstack extension list --network
验证网络:
在控制节点上,列出所有的代理:
$ openstack network agent list
输出应该是4个控制节点上的代理和一个计算节点上的代理。
六、Dashboard
安装和配置
验证操作
安装并配置组件
安装相关包
# yum install openstack-dashboard
编辑/etc/openstack-dashboard/local_settings文件,修改以下配置
注:以下的配置大部分在原配置文件中都包括,修改即可,不要直接添加。
配置dashboard在控制节点上使用OpenStack服务:
OPENSTACK_HOST="controller"
允许主机连接到dashboard:
ALLOWED_HOSTS=['*,]
*表示允许所有主机连接dashboard,在生产环境中不建议这样做。
配置memcached存储服务:
SESSION_ENGINE='django.contrib.sessions.backends.cache'
CACHES={
'default':{
'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION':'controller:11211',
}
}
启用认证API版本3
OPENSTACK_KEYSTONE_URL="http://%s:5000/v3"%OPENSTACK_HOST
启用域支持:
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT=True
配置API版本:
OPENSTACK_API_VERSIONS={
"identity":3,
"p_w_picpath":2,
"volume":2,
}
配置default作为用户通过dashboard创建的默认的域:
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN="default"
配置user作为用户创建的默认的角色:
OPENSTACK_KEYSTONE_DEFAULT_ROLE="user"
可选的,可以配置时区:
TIME_ZONE="TIME_ZONE"
替换掉TIME_ZONE,这里替换为:Asia/chongqing
完成安装:
重启web服务器以及会话存储服务:
# systemctl restart httpd.service memcached.service
验证操作:
使用浏览器连接http://controller/dashboard,如果无法连接,那么就将controller替换为IP地址。如下图;
使用admin或者demo用户和default域认证,如下图,登录成功: