本帖最后由 pig2 于 2015-2-26 17:29 编辑
问题导读
1.neutron什么时候同步数据库,与其它组件有什么不同?
2.keystone tenant-get service作用是什么?
3.本文都配置了哪些网络插件?
接上一篇
openstack【juno】入门 【网络篇】十四:neutron介绍
在安装配置openstack neutron之前,需要创建数据库、服务认证、 API endpoints.
安装准备
1.创建数据库
a.登录mysql
复制代码
b.创建 neutron 数据库:
复制代码
c.授权
- GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
- IDENTIFIED BY 'NEUTRON_DBPASS';
- GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
- IDENTIFIED BY 'NEUTRON_DBPASS';
复制代码
d.推出mysql
复制代码
2.环境变量生效
复制代码 内容为
- export OS_TENANT_NAME=admin
- export OS_USERNAME=admin
- export OS_PASSWORD=ADMIN_PASS
- export OS_AUTH_URL=http://controller:35357/v2.0
复制代码
3.创建服务凭证
a.创建neutron用户:
- keystone user-create --name neutron --pass NEUTRON_PASS
复制代码
b.给neutron用户授予admin角色
- keystone user-role-add --user neutron --tenant service --role admin
复制代码
没有输出
c.创建neutron 服务实例
- keystone service-create --name neutron --type network \
- --description "OpenStack Networking"
复制代码
4.创建网路服务 API endpoints:
- keystone endpoint-create \
- --service-id $(keystone service-list | awk '/ network / {print $2}') \
- --publicurl http://controller:9696 \
- --adminurl http://controller:9696 \
- --internalurl http://controller:9696 \
- --region regionOne
复制代码
安装网络组件
安装组件
- apt-get install neutron-server neutron-plugin-ml2 python-neutronclient
复制代码
配置网络服务组件
网络服务器组件配置包括数据库,认证机制,消息代理,拓扑改变报警,和插件。
编辑文件 /etc/neutron/neutron.conf,完成下面下面配置
- sudo nano /etc/neutron/neutron.conf
复制代码
a.在 [database] 部分, 配置数据库访问:
- [database]
- ...
- connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron
复制代码
b.在 [DEFAULT] 部分, 配置 RabbitMQ 消息代理访问:
- [DEFAULT]
- ...
- rpc_backend = rabbit
- rabbit_host = controller
- rabbit_password = RABBIT_PASS
复制代码
c.在 [DEFAULT] 和 [keystone_authtoken] 部分,配置认证服务
- [DEFAULT]
- ...
- auth_strategy = keystone
-
- [keystone_authtoken]
- ...
- auth_uri = http://controller:5000/v2.0
- identity_uri = http://controller:35357
- admin_tenant_name = service
- admin_user = neutron
- admin_password = NEUTRON_PASS
复制代码
注释掉其它auth_host, auth_port, 和 auth_protocol,因为identity_uri 可能被覆盖
d.在[DEFAULT]部分配置 Modular Layer 2 (ML2) plug-in, router service, and overlapping IP addresses:
- [DEFAULT]
- ...
- core_plugin = ml2
- service_plugins = router
- allow_overlapping_ips = True
复制代码
e.在 [DEFAULT] 部分, 配置网络的网络计算拓扑变化通知:
- [DEFAULT]
- ...
- notify_nova_on_port_status_changes = True
- notify_nova_on_port_data_changes = True
- nova_url = http://controller:8774/v2
- nova_admin_auth_url = http://controller:35357/v2.0
- nova_region_name = regionOne
- nova_admin_username = nova
- nova_admin_tenant_id = SERVICE_TENANT_ID
- nova_admin_password = NOVA_PASS
复制代码
注意,这里SERVICE_TENANT_ID是keystone service 租户id 。nova_pass是nova用户密码,这是使用的是默认密码
注意保存service 租户的tenant identifier (id):
复制代码
- keystone tenant-get service
复制代码
- +-------------+----------------------------------+
- | Property | Value |
- +-------------+----------------------------------+
- | description | Service Tenant |
- | enabled | True |
- | id | 7694d20c2e814ebd8b8eb855135ce1b0 |
- | name | service |
- +-------------+----------------------------------+
复制代码
上面配置替换为下面:
- [DEFAULT]
- ...
- notify_nova_on_port_status_changes = True
- notify_nova_on_port_data_changes = True
- nova_url = http://controller:8774/v2
- nova_admin_auth_url = http://controller:35357/v2.0
- nova_region_name = regionOne
- nova_admin_username = nova
- nova_admin_tenant_id = 7694d20c2e814ebd8b8eb855135ce1b0
- nova_admin_password = NOVA_PASS
复制代码
f.为帮助排除问题,在[DEFAULT]启用verbose
- [DEFAULT]
- ...
- verbose = True
复制代码
配置Modular Layer 2 (ML2) 插件
ML2插件使用 Open vSwitch (OVS)机制,为实例创建虚拟网络框架。尽管如此控制节点不需要OVS 组件,因为它不处理实例网络互通
编辑文件 /etc/neutron/plugins/ml2/ml2_conf.ini,完成下面步骤
- sudo nano /etc/neutron/plugins/ml2/ml2_conf.ini
复制代码
a.在 [ml2]部分,配置启用 flat 和 generic routing encapsulation (GRE) 网络驱动,GRE 租户网络和ovs驱动
- [ml2]
- ...
- type_drivers = flat,gre
- tenant_network_types = gre
- mechanism_drivers = openvswitch
复制代码
注意:
一旦配置ML2 插件,禁用网络驱动和重启,将会导致数据库不一致。
b.在 [ml2_type_gre] 部分, 配置 tunnel identifier (id) 范围:
- [ml2_type_gre]
- ...
- tunnel_id_ranges = 1:1000
复制代码
c.在 [securitygroup] 部分,配置安全组,ipset,配置OVS防火墙驱动
- [securitygroup]
- ...
- enable_security_group = True
- enable_ipset = True
- firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
复制代码
使用网络配置计算
默认情况下,分配包配置使用传统网络计算。你不许通过网络重新配置管理网络计算
编辑文件 /etc/nova/nova.conf,完成下面操作
- sudo nano /etc/nova/nova.conf
复制代码
a.在 [DEFAULT]默认部分,配置api和驱动
- [DEFAULT]
- ...
- network_api_class = nova.network.neutronv2.api.API
- security_group_api = neutron
- linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
- firewall_driver = nova.virt.firewall.NoopFirewallDriver
复制代码
注意:
默认,计算使用内部防火墙网络,自从网络包含网络防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动停掉计算防火墙服务。
b.在 [neutron] 部分,配置访问参数
- [neutron]
- ...
- url = http://controller:9696
- auth_strategy = keystone
- admin_auth_url = http://controller:35357/v2.0
- admin_tenant_name = service
- admin_username = neutron
- admin_password = NEUTRON_PASS
复制代码
发现没有这个标签,直接添加了
- [DEFAULT]
- network_api_class = nova.network.neutronv2.api.API
- security_group_api = neutron
- linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
- firewall_driver = nova.virt.firewall.NoopFirewallDriver
-
-
- dhcpbridge_flagfile=/etc/nova/nova.conf
- dhcpbridge=/usr/bin/nova-dhcpbridge
- logdir=/var/log/nova
- state_path=/var/lib/nova
- lock_path=/var/lock/nova
- force_dhcp_release=True
- libvirt_use_virtio_for_bridges=True
- verbose=True
- ec2_private_dns_show_ip=True
- api_paste_config=/etc/nova/api-paste.ini
- enabled_apis=ec2,osapi_compute,metadata
- rpc_backend = rabbit
- rabbit_host = controller
- rabbit_password = RABBIT_PASS
- auth_strategy = keystone
- my_ip = 10.0.0.11
- vncserver_listen = 10.0.0.11
- vncserver_proxyclient_address = 10.0.0.11
- verbose = True
-
- [database]
- connection = mysql://nova:NOVA_DBPASS@controller/nova
-
- [keystone_authtoken]
-
- auth_uri = http://controller:5000/v2.0
- identity_uri = http://controller:35357
- admin_tenant_name = service
- admin_user = nova
- admin_password = NOVA_PASS
-
-
- [glance]
- host = controller
- [neutron]
- url = http://controller:9696
- auth_strategy = keystone
- admin_auth_url = http://controller:35357/v2.0
- admin_tenant_name = service
- admin_username = neutron
- admin_password = NEUTRON_PASS
复制代码
完成安装
1.同步数据库
- su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
- --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
复制代码
注意:同步数据库最后,是因为脚本需要完成服务 和 插件的配置文件
2.重启计算服务
- service nova-api restart
- service nova-scheduler restart
- service nova-conductor restart
复制代码
3.重启网络服务
- service neutron-server restart
复制代码
验证是否成功
在控制节点上执行下面命令
1.生效环境变量
复制代码
2.列出创建的加载扩展的 neutron-server进程
复制代码
遇到问题:
不能连接http://controller:9696/v2.0/extensions.json
root@controller:~# neutron ext-list
Unable to establish connection to http://controller:9696/v2.0/extensions.json
原因:
不能同步数据库
,同步即解决
- su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
- --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron
复制代码
相关内容:
openstack【juno】入门 【准备篇】零:整体介绍
openstack【juno】入门 【准备篇】一: Ubuntu14.04远程连接(ssh安装)
openstack【juno】入门 【准备篇】二::NTP安装
openstack【juno】入门 【准备篇】三:mysql(MariaDB)安装
openstack【juno】入门 【准备篇】四::RabbitMQ 安装
openstack【juno】入门 【keystone篇】五::Keystone部署及介绍
openstack【juno】入门 【keystone篇】六::Keystone使用及遇到问题解决办法
openstack【juno】入门 【keystone篇】七:创建 service entity 和 API endpoint
openstack【juno】入门 【keystone篇】八:新手操作篇(验证操作篇)
openstack【juno】入门 【keystone篇】九:创建openstack客户端环境变量脚本
openstack【juno】入门 【glance 篇】十:glance初步介绍
openstack【juno】入门 【glance 篇】十一:glance安装配置
openstack【juno】入门 【glance 篇】十二:glance安装配置验证及相关操作
openstack【juno】入门 【nova 篇】十三(1):nova简单介绍
openstack【juno】入门 【nova 篇】十三(2):安装配置计算服务
openstack【juno】入门 【网络篇】十四:neutron介绍
openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)
openstack【juno】入门 【网络篇】十六:neutron安装部署(网络节点)
openstack【juno】入门 【网络篇】十七:neutron安装部署(计算节点)
openstack【juno】入门 【网络篇】十八:创建实例化网络
openstack【juno】入门 【dashboard篇】十九:添加dashboard
openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】
openstack【juno】入门 【cinder篇】二十一:安装配置块存储节点(cinder)
openstack【juno】入门 【swift篇】二十二:对象存储安装配置【控制节点】
openstack【juno】入门 【swift篇】二十三:安装配置swift节点
openstack【juno】入门 【swift篇】二十四:创建初始rings
openstack【juno】入门 【swift篇】二十五:验证安装(控制节点)
openstack【juno】入门 【实例篇】二十六:创建实例(neutron)
openstack【juno】入门 【总结篇】二十七:openstack排除故障及常见问题记录
openstack【juno】入门 【总结篇】二十八:keystone及网络总结
|