• OpenStack Train版-8.安装neutron网络服务(控制节点)


    1. 创建neutron数据库并授权

    [root@controller ~]# mysql -u root -proot
    MariaDB [(none)]> CREATE DATABASE neutron;
    Query OK, 1 row affected (0.000 sec)

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'NEUTRON_DBPASS';
    Query OK, 0 rows affected (0.001 sec)

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'NEUTRON_DBPASS';
    Query OK, 0 rows affected (0.000 sec)
    2. 创建neutron用户
    [root@controller ~]# openstack user create --domain default --password NEUTRON_PASS neutron
    +---------------------+----------------------------------+
    | Field | Value |
    +---------------------+----------------------------------+
    | domain_id | default |
    | enabled | True |
    | id | 53701656df754e03a7971010f81eb3da |
    | name | neutron |
    | options | {} |
    | password_expires_at | None |
    +---------------------+----------------------------------+
    3. 向neutron用户添加admin角色
    [root@controller ~]# openstack role add --project service --user neutron admin

    4. 创建neutron服务实体
    [root@controller ~]# openstack service create --name neutron --description "OpenStack Networking" network
    +-------------+----------------------------------+
    | Field | Value |
    +-------------+----------------------------------+
    | description | OpenStack Networking |
    | enabled | True |
    | id | 533f64aabf8240a3965ffd196579a060 |
    | name | neutron |
    | type | network |
    +-------------+----------------------------------+
    5. 创建neutron服务端点
    [root@controller ~]# openstack endpoint create --region RegionOne network public http://controller:9696
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | 50645eaf294b4b649ee324c4250b40b8 |
    | interface | public |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 533f64aabf8240a3965ffd196579a060 |
    | service_name | neutron |
    | service_type | network |
    | url | http://controller:9696 |
    +--------------+----------------------------------+
    [root@controller ~]# openstack endpoint create --region RegionOne network internal http://controller:9696
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | eb1194025aee4581bd428a138288f93d |
    | interface | internal |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 533f64aabf8240a3965ffd196579a060 |
    | service_name | neutron |
    | service_type | network |
    | url | http://controller:9696 |
    +--------------+----------------------------------+
    [root@controller ~]# openstack endpoint create --region RegionOne network admin http://controller:9696
    +--------------+----------------------------------+
    | Field | Value |
    +--------------+----------------------------------+
    | enabled | True |
    | id | 41708d9ae7704b008d404c641f39d4c6 |
    | interface | admin |
    | region | RegionOne |
    | region_id | RegionOne |
    | service_id | 533f64aabf8240a3965ffd196579a060 |
    | service_name | neutron |
    | service_type | network |
    | url | http://controller:9696 |
    +--------------+----------------------------------+
    6. 安装软件包{配置二层网络}
    [root@controller ~]# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables -y
    说明:
    openstack-neutron:neutron-server的包
    openstack-neutron-ml2:ML2 plugin的包
    openstack-neutron-linuxbridge:linux bridge network provider相关的包
    ebtables:防火墙相关的包
    7. 修改 neutron 配置文件
    (1)neutron server的配置文件neutron.conf
    [root@controller ~]# cp -a /etc/neutron/neutron.conf{,.bak}
    [root@controller ~]# grep -Ev '^$|#' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf

    openstack-config --set /etc/neutron/neutron.conf database connection mysql+pymysql://neutron:NEUTRON_DBPASS@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:RABBIT_PASS@controller
    openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
    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 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_PASS
    openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp

    [root@controller ~]# vim /etc/neutron/neutron.conf
    [nova]([nova]自己加,加8行)
    auth_url = http://ct:5000
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = nova
    password = NOVA_PASS
    (2)ML2 plugin的配置文件ml2_conf.ini
    [root@controller ~]# cp -a /etc/neutron/plugins/ml2/ml2_conf.ini{,.bak}
    [root@controller ~]# grep -Ev '^$|#' /etc/neutron/plugins/ml2/ml2_conf.ini.bak > /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
    (3)linux bridge network provider的配置文件linuxbridge_agent.ini
    [root@controller ~]# cp -a /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak}
    [root@controller ~]# grep -Ev '^$|#' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak > /etc/neutron/plugins/ml2/linuxbridge_agent.ini

    openstack-config --set /etc/neutron/plugins/ml2/linuxbridge_agent.ini linux_bridge physical_interface_mappings provider:eth0
    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
    从配置文件中可以看出,INTERFACE_NAME指的是eth0,就是连接外部网络的那块网卡(provider interface)
    8. 修改内核参数
    [root@controller ~]# echo 'net.bridge.bridge-nf-call-iptables=1
    net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
    [root@controller ~]# modprobe br_netfilter
    [root@controller ~]# sysctl -p
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1

    9. dhcp agent配置文件dhcp_agent.ini
    [root@controller ~]# cp -a /etc/neutron/dhcp_agent.ini{,.bak}
    [root@controller ~]# grep -Ev '^$|#' /etc/neutron/dhcp_agent.ini.bak > /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
    10. 配置元数据代理,以便和nova通讯
    [root@controller ~]# cp -a /etc/neutron/metadata_agent.ini{,.bak}
    [root@controller ~]# grep -Ev '^$|#' /etc/neutron/metadata_agent.ini.bak > /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 METADATA_SECRET
    11. 修改nova的配置文件,也是为了和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_PASS
    openstack-config --set /etc/nova/nova.conf neutron service_metadata_proxy true
    openstack-config --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret METADATA_SECRET
    12. 初始数据库
    建立ml2的软连接
    [root@controller ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

    填充Neutron数据库
    [root@controller ~]# 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
    13. 重新启动nova-api服务
    systemctl restart openstack-nova-api.service

    14. 启动neutron服务和配置开机启动
    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

    启动好之后,可以使用systemctl status命令查看各个服务运行的状态,使用netstat -tnlup查看是否有9696端口。
    [root@controller ~]# netstat -lntup|grep 9696
    tcp 0 0 0.0.0.0:9696 0.0.0.0:* LISTEN 11930/server.log
    至此,控制节点上的neutron服务组件安装完毕,下面切换到另外一台机器,在计算节点上安装neutron服务。

  • 相关阅读:
    java之Arrays.asList
    MySql索引
    Maven私服搭建
    基于Docker的GitLab搭建
    ubuntu新建组合用户命令不管用
    Linux 安装jdk
    消息队列
    Netty之大动脉Pipeline
    Netty之大名鼎鼎的EventLoop
    Netty之揭开BootStrap 的神秘面纱
  • 原文地址:https://www.cnblogs.com/lxc123/p/13237438.html
Copyright © 2020-2023  润新知