接 手把手教你安装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 ,
"image" : 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域认证,如下图,登录成功:
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com