zoukankan      html  css  js  c++  java
  • CentOS7安装OpenStack-06.安装Neutron网络服务

    6.0.Neutron概述

    OpenStack Networking(neutron),允许创建、插入接口设备,这些设备由其他的OpenStack服务管理。插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。

    它包含下列组件:

    neutron-server:接收和路由API请求到合适的OpenStack网络插件,以达到预想的目的。
    
    OpenStack网络插件和代理:插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
    
    常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。
    
    消息队列:大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态
    
    OpenStack网络主要和OpenStack计算交互,以提供网络连接到它的实例。

    6.1.在keystone数据库中注册neutron相关服务(控制节点

    1)创建neutron数据库,授予合适的访问权限

    # 连接数据库
    mysql -u root -p
    
    # 创建数据并授权
    CREATE DATABASE neutron;
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron';
    GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron';

    2)在keystone上创建neutron用户

    cd /server/tools
    source keystone-admin-pass.sh
    openstack user create --domain default --password=neutron neutron
    openstack user list

    3)将neutron添加到service项目并授予admin角色

    # 以下命令无输出

    openstack role add --project service --user neutron admin

    4)创建neutron服务实体

    openstack service create --name neutron --description "OpenStack Networking" network
    openstack service list

    5)创建neutron网络服务的API端点(endpoint)

    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
    openstack endpoint list

    6.2.在控制节点安装neutron网络组件

    1)安装neutron软件包

    yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables -y

    2)快速配置/etc/neutron/neutron.conf

    openstack-config --set  /etc/neutron/neutron.conf database connection  mysql+pymysql://neutron:neutron@controller/neutron 
    openstack-config --set  /etc/neutron/neutron.conf DEFAULT core_plugin  ml2  
    openstack-config --set  /etc/neutron/neutron.conf DEFAULT service_plugins 
    openstack-config --set  /etc/neutron/neutron.conf DEFAULT transport_url rabbit://openstack:openstack@controller
    openstack-config --set  /etc/neutron/neutron.conf DEFAULT auth_strategy  keystone  
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri  http://controller:5000
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken auth_url  http://controller:5000
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken memcached_servers  controller:11211
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken auth_type  password  
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken project_domain_name default  
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken user_domain_name  default  
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken project_name  service  
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken username  neutron  
    openstack-config --set  /etc/neutron/neutron.conf keystone_authtoken password  neutron  
    openstack-config --set  /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes  True  
    openstack-config --set  /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes  True  
    openstack-config --set  /etc/neutron/neutron.conf nova auth_url  http://controller:5000
    openstack-config --set  /etc/neutron/neutron.conf nova auth_type  password 
    openstack-config --set  /etc/neutron/neutron.conf nova project_domain_name  default  
    openstack-config --set  /etc/neutron/neutron.conf nova user_domain_name  default  
    openstack-config --set  /etc/neutron/neutron.conf nova region_name  RegionOne  
    openstack-config --set  /etc/neutron/neutron.conf nova project_name  service  
    openstack-config --set  /etc/neutron/neutron.conf nova username  nova  
    openstack-config --set  /etc/neutron/neutron.conf nova password  nova  
    openstack-config --set  /etc/neutron/neutron.conf oslo_concurrency lock_path  /var/lib/neutron/tmp

    # 查看生效的配置

    egrep -v '(^$|^#)' /etc/neutron/neutron.conf 

    3)快速配置/etc/neutron/plugins/ml2/ml2_conf.ini

    openstack-config --set  /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers  flat,vlan
    openstack-config --set  /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types 
    openstack-config --set  /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers  linuxbridge
    openstack-config --set  /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers  port_security
    openstack-config --set  /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks  provider 
    openstack-config --set  /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset  True 

    # 查看生效的配置

    egrep -v '(^$|^#)' /etc/neutron/plugins/ml2/ml2_conf.ini

    4)快速配置/etc/neutron/plugins/ml2/linuxbridge_agent.ini(标记的网卡名称,是填写自己的网卡名称)

    openstack-config --set   /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings  provider:ens33
    openstack-config --set   /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan  enable_vxlan  False
    openstack-config --set   /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup  enable_security_group  True 
    openstack-config --set   /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup  firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

    # 查看生效的配置

    egrep -v '(^$|^#)' /etc/neutron/plugins/ml2/linuxbridge_agent.ini

    # 以下参数在启动neutron-linuxbridge-agent.service的时候会自动设置为1

    sysctl net.bridge.bridge-nf-call-iptables
    sysctl net.bridge.bridge-nf-call-ip6tables

    5)快速配置/etc/neutron/dhcp_agent.ini

    openstack-config --set   /etc/neutron/dhcp_agent.ini DEFAULT  interface_driver  linuxbridge
    openstack-config --set   /etc/neutron/dhcp_agent.ini DEFAULT  dhcp_driver  neutron.agent.linux.dhcp.Dnsmasq
    openstack-config --set   /etc/neutron/dhcp_agent.ini DEFAULT  enable_isolated_metadata  True 

    # 查看生效的配置

    egrep -v '(^$|^#)' /etc/neutron/dhcp_agent.ini

    # 至此,方式1的配置文件修改完毕

    6)快速配置/etc/neutron/metadata_agent.ini

    openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_host controller
    openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret neutron

    # 查看生效的配置

    egrep -v '(^$|^#)' /etc/neutron/metadata_agent.ini

    # metadata_proxy_shared_secret选项是元数据代理,需要设置一个合适的密码这里设置为neutron

    7)配置计算服务使用网络服务(控制节点

    # 快速配置/etc/nova/nova.conf,将neutron添加到计算节点

    openstack-config --set  /etc/nova/nova.conf  neutron url http://controller:9696
    openstack-config --set  /etc/nova/nova.conf  neutron auth_url http://controller:5000
    openstack-config --set  /etc/nova/nova.conf  neutron auth_type password
    openstack-config --set  /etc/nova/nova.conf  neutron project_domain_name default
    openstack-config --set  /etc/nova/nova.conf  neutron user_domain_name default
    openstack-config --set  /etc/nova/nova.conf  neutron region_name RegionOne
    openstack-config --set  /etc/nova/nova.conf  neutron project_name service
    openstack-config --set  /etc/nova/nova.conf  neutron username neutron
    openstack-config --set  /etc/nova/nova.conf  neutron password neutron
    openstack-config --set  /etc/nova/nova.conf  neutron service_metadata_proxy true
    openstack-config --set  /etc/nova/nova.conf  neutron metadata_proxy_shared_secret neutron

    8)初始化安装网络插件

    # 创建网络插件的链接,初始化网络的脚本插件会用到/etc/neutron/plugin.ini,需要使用ML2的插件进行提供

    ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

    9)同步数据库

    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

    10)重启nova_api服务

    systemctl restart openstack-nova-api.service

    11)启动neutron服务并设置开机启动

    # 需要启动4个服务

    systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
    systemctl status neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
    systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
    systemctl list-unit-files |grep neutron* |grep enabled

    6.3.在计算节点安装neutron网络组件

    1)安装neutron组件

    yum install openstack-neutron-linuxbridge ebtables ipset -y

    2)快速配置/etc/neutron/neutron.conf

    openstack-config --set /etc/neutron/neutron.conf DEFAULT transport_url  rabbit://openstack:openstack@controller
    openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken www_authenticate_uri  http://controller:5000
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:5000
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
    openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password neutron
    openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp

    3)快速配置/etc/neutron/plugins/ml2/linuxbridge_agent.ini

    openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings  provider:ens33
    openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini vxlan enable_vxlan false
    openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup enable_security_group true
    openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

    # 注意:第一个选项physical_interface_mappings选项要配置计算节点自身的网卡名称provider:ens33

    4)配置nova计算服务与neutron网络服务协同工作

    # 快速配置/etc/nova/nova.conf

    openstack-config --set /etc/nova/nova.conf neutron url http://controller:9696
    openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller:5000
    openstack-config --set /etc/nova/nova.conf neutron auth_type password
    openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
    openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
    openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
    openstack-config --set /etc/nova/nova.conf neutron project_name service 
    openstack-config --set /etc/nova/nova.conf neutron username neutron
    openstack-config --set /etc/nova/nova.conf neutron password neutron

    5)重启计算节点

    systemctl restart openstack-nova-compute.service
    systemctl status openstack-nova-compute.service

    6)启动neutron网络组件,并配置开机自启动

    # 需要启动1个服务,网桥代理

    systemctl restart neutron-linuxbridge-agent.service
    systemctl status neutron-linuxbridge-agent.service
    
    systemctl enable neutron-linuxbridge-agent.service
    systemctl list-unit-files |grep neutron* |grep enabled

    # 至此,计算节点的网络配置完成,转回到控制节点进行验证操作

    6.4.在控制节点检查确认neutron服务安装成功

    1)获取管理权限

    cd /server/tools
    source keystone-admin-pass.sh

    2)列表查看加载的网络插件

    openstack extension list --network

    # 或者使用另一种方法:显示简版信息

    neutron ext-list

    3)查看网络代理列表

    openstack network agent list

    # 正常情况下:控制节点有3个服务,计算节点有1个服务,如果不是,需要检查计算节点配置:网卡名称,IP地址,端口,密码等要素

    ~~~neutron安装部署完毕~~~

  • 相关阅读:
    视频直播和实时音视频区别调研
    MySQL5.7 并行复制
    MySQL5.7 并行复制
    SSH 超时设置
    有赞透明多级缓存解决方案(TMC)设计思路
    有赞透明多级缓存解决方案(TMC)设计思路
    spring.net异常处理
    python之for学习
    pyhton小方法
    时间戳处理
  • 原文地址:https://www.cnblogs.com/liugp/p/12463137.html
Copyright © 2011-2022 走看看