立即注册 登录
About云-梭伦科技 返回首页

pig2的个人空间 https://www.aboutyun.com/?61 [收藏] [复制] [分享] [RSS]

日志

openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)

热度 1已有 2719 次阅读2015-2-26 17:53



问题导读


1.neutron什么时候同步数据库,与其它组件有什么不同?
2.keystone tenant-get service作用是什么?
3.本文都配置了哪些网络插件?




接上一篇
openstack【juno】入门 【网络篇】十四:neutron介绍


在安装配置openstack neutron之前,需要创建数据库、服务认证、 API endpoints.

安装准备

1.创建数据库

a.登录mysql
  1. mysql -u root -p



b.创建 neutron 数据库:
  1. CREATE DATABASE neutron;



c.授权
  1. GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' \
  2.   IDENTIFIED BY 'NEUTRON_DBPASS';
  3. GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' \
  4.   IDENTIFIED BY 'NEUTRON_DBPASS';



d.推出mysql
  1. exit



2.环境变量生效
  1. source admin-openrc.sh

内容为
  1. export OS_TENANT_NAME=admin
  2. export OS_USERNAME=admin
  3. export OS_PASSWORD=ADMIN_PASS
  4. export OS_AUTH_URL=http://controller:35357/v2.0



3.创建服务凭证

a.创建neutron用户:
  1. keystone user-create --name neutron --pass NEUTRON_PASS



 

b.给neutron用户授予admin角色
  1. keystone user-role-add --user neutron --tenant service --role admin

没有输出

c.创建neutron 服务实例
  1. keystone service-create --name neutron --type network \
  2.   --description "OpenStack Networking"

 


4.创建网路服务 API endpoints:
  1. keystone endpoint-create \
  2.   --service-id $(keystone service-list | awk '/ network / {print $2}') \
  3.   --publicurl http://controller:9696 \
  4.   --adminurl http://controller:9696 \
  5.   --internalurl http://controller:9696 \
  6.   --region regionOne

 

安装网络组件

安装组件
  1. apt-get install neutron-server neutron-plugin-ml2 python-neutronclient

 

配置网络服务组件

网络服务器组件配置包括数据库,认证机制,消息代理,拓扑改变报警,和插件。

编辑文件 /etc/neutron/neutron.conf,完成下面下面配置
  1. sudo nano  /etc/neutron/neutron.conf




a.在 [database] 部分, 配置数据库访问:
  1. [database]
  2. ...
  3. connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron



b.在 [DEFAULT] 部分, 配置 RabbitMQ  消息代理访问:
  1. [DEFAULT]
  2. ...
  3. rpc_backend = rabbit
  4. rabbit_host = controller
  5. rabbit_password = RABBIT_PASS



c.在 [DEFAULT] 和 [keystone_authtoken] 部分,配置认证服务

  1. [DEFAULT]
  2. ...
  3. auth_strategy = keystone

  4. [keystone_authtoken]
  5. ...
  6. auth_uri = http://controller:5000/v2.0
  7. identity_uri = http://controller:35357
  8. admin_tenant_name = service
  9. admin_user = neutron
  10. 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:
  1. [DEFAULT]
  2. ...
  3. core_plugin = ml2
  4. service_plugins = router
  5. allow_overlapping_ips = True



e.在 [DEFAULT] 部分, 配置网络的网络计算拓扑变化通知:
  1. [DEFAULT]
  2. ...
  3. notify_nova_on_port_status_changes = True
  4. notify_nova_on_port_data_changes = True
  5. nova_url = http://controller:8774/v2
  6. nova_admin_auth_url = http://controller:35357/v2.0
  7. nova_region_name = regionOne
  8. nova_admin_username = nova
  9. nova_admin_tenant_id = SERVICE_TENANT_ID
  10. nova_admin_password = NOVA_PASS

注意,这里SERVICE_TENANT_ID是keystone service 租户id 。nova_pass是nova用户密码,这是使用的是默认密码

注意保存service 租户的tenant identifier (id):

  1. source admin-openrc.sh



  1. keystone tenant-get service


  1. +-------------+----------------------------------+
  2. |   Property  |              Value               |
  3. +-------------+----------------------------------+
  4. | description |          Service Tenant          |
  5. |   enabled   |               True               |
  6. |      id     | 7694d20c2e814ebd8b8eb855135ce1b0 |
  7. |     name    |             service              |
  8. +-------------+----------------------------------+

 


上面配置替换为下面:

  1. [DEFAULT]
  2. ...
  3. notify_nova_on_port_status_changes = True
  4. notify_nova_on_port_data_changes = True
  5. nova_url = http://controller:8774/v2
  6. nova_admin_auth_url = http://controller:35357/v2.0
  7. nova_region_name = regionOne
  8. nova_admin_username = nova
  9. nova_admin_tenant_id = 7694d20c2e814ebd8b8eb855135ce1b0
  10. nova_admin_password = NOVA_PASS




f.为帮助排除问题,在[DEFAULT]启用verbose 
  1. [DEFAULT]
  2. ...
  3. verbose = True


配置Modular Layer 2 (ML2) 插件


ML2插件使用 Open vSwitch (OVS)机制,为实例创建虚拟网络框架。尽管如此控制节点不需要OVS 组件,因为它不处理实例网络互通

编辑文件 /etc/neutron/plugins/ml2/ml2_conf.ini,完成下面步骤
  1. sudo nano  /etc/neutron/plugins/ml2/ml2_conf.ini


a.在 [ml2]部分,配置启用 flat 和 generic routing encapsulation (GRE) 网络驱动,GRE 租户网络和ovs驱动

  1. [ml2]
  2. ...
  3. type_drivers = flat,gre
  4. tenant_network_types = gre
  5. mechanism_drivers = openvswitch

注意:

一旦配置ML2 插件,禁用网络驱动和重启,将会导致数据库不一致。

b.在 [ml2_type_gre] 部分, 配置 tunnel identifier (id) 范围:
  1. [ml2_type_gre]
  2. ...
  3. tunnel_id_ranges = 1:1000


c.在 [securitygroup] 部分,配置安全组,ipset,配置OVS防火墙驱动

  1. [securitygroup]
  2. ...
  3. enable_security_group = True
  4. enable_ipset = True
  5. firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

 


使用网络配置计算

默认情况下,分配包配置使用传统网络计算。你不许通过网络重新配置管理网络计算
编辑文件 /etc/nova/nova.conf,完成下面操作

  1. sudo nano  /etc/nova/nova.conf



a.在 [DEFAULT]默认部分,配置api和驱动

  1. [DEFAULT]
  2. ...
  3. network_api_class = nova.network.neutronv2.api.API
  4. security_group_api = neutron
  5. linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
  6. firewall_driver = nova.virt.firewall.NoopFirewallDriver


注意:
默认,计算使用内部防火墙网络,自从网络包含网络防火墙服务,你必须使用nova.virt.firewall.NoopFirewallDriver防火墙驱动停掉计算防火墙服务。

b.在 [neutron] 部分,配置访问参数
  1. [neutron]
  2. ...
  3. url = http://controller:9696
  4. auth_strategy = keystone
  5. admin_auth_url = http://controller:35357/v2.0
  6. admin_tenant_name = service
  7. admin_username = neutron
  8. admin_password = NEUTRON_PASS

发现没有这个标签,直接添加了
 

  1. [DEFAULT]
  2. network_api_class = nova.network.neutronv2.api.API
  3. security_group_api = neutron
  4. linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
  5. firewall_driver = nova.virt.firewall.NoopFirewallDriver


  6. dhcpbridge_flagfile=/etc/nova/nova.conf
  7. dhcpbridge=/usr/bin/nova-dhcpbridge
  8. logdir=/var/log/nova
  9. state_path=/var/lib/nova
  10. lock_path=/var/lock/nova
  11. force_dhcp_release=True
  12. libvirt_use_virtio_for_bridges=True
  13. verbose=True
  14. ec2_private_dns_show_ip=True
  15. api_paste_config=/etc/nova/api-paste.ini
  16. enabled_apis=ec2,osapi_compute,metadata
  17. rpc_backend = rabbit
  18. rabbit_host = controller
  19. rabbit_password = RABBIT_PASS
  20. auth_strategy = keystone
  21. my_ip = 10.0.0.11
  22. vncserver_listen = 10.0.0.11
  23. vncserver_proxyclient_address = 10.0.0.11
  24. verbose = True

  25. [database]
  26. connection = mysql://nova:NOVA_DBPASS@controller/nova

  27. [keystone_authtoken]

  28. auth_uri = http://controller:5000/v2.0
  29. identity_uri = http://controller:35357
  30. admin_tenant_name = service
  31. admin_user = nova
  32. admin_password = NOVA_PASS


  33. [glance]
  34. host = controller
  35. [neutron]
  36. url = http://controller:9696
  37. auth_strategy = keystone
  38. admin_auth_url = http://controller:35357/v2.0
  39. admin_tenant_name = service
  40. admin_username = neutron
  41. admin_password = NEUTRON_PASS







完成安装

1.同步数据库
  1. su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  2.   --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron

注意:同步数据库最后,是因为脚本需要完成服务 和 插件的配置文件


2.重启计算服务

  1. service nova-api restart
  2. service nova-scheduler restart
  3. service nova-conductor restart


 


3.重启网络服务

  1. service neutron-server restart
复制代码



验证是否成功

在控制节点上执行下面命令

1.生效环境变量
  1. source admin-openrc.sh



2.列出创建的加载扩展的 neutron-server进程

  1. neutron ext-list

 


遇到问题:
不能连接http://controller:9696/v2.0/extensions.json
root@controller:~# neutron ext-list
Unable to establish connection to http://controller:9696/v2.0/extensions.json

原因:
不能同步数据库
,同步即解决
  1. su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
  2.   --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade juno" neutron



路过

雷人

握手

鲜花

鸡蛋

发表评论 评论 (2 个评论)

回复 haofanforwork 2015-12-29 19:12
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

这步,在新版本 需修改为
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

否则,对应的数据表不完整,从而agent不能正常启动
回复 haofanforwork 2015-12-29 19:13
补充按第一个方法同步数据,创建的数据表为130多,而按第二个方法创建的数据表为155

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条