Difference between revisions of "OpenStack: Installing OpenStack Networking"
Jump to navigation
Jump to search
| Line 219: | Line 219: | ||
net.ipv4.conf.all.rp_filter = 0 | net.ipv4.conf.all.rp_filter = 0 | ||
net.ipv4.conf.default.rp_filter = 0 | net.ipv4.conf.default.rp_filter = 0 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ ovs-vsctl add-br br-int | ||
| + | [root@server2-a ~(keystone_admin)]$ ovs-vsctl add-br br-ex | ||
| + | [root@server2-a ~(keystone_admin)]$ ovs-vsctl show | ||
| + | cc658c36-079f-4032-aafa-18bc94250dd5 | ||
| + | Bridge br-ex | ||
| + | Port br-ex | ||
| + | Interface br-ex | ||
| + | type: internal | ||
| + | Bridge br-int | ||
| + | Port br-int | ||
| + | Interface br-int | ||
| + | type: internal | ||
| + | ovs_version: "2.1.3" | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/ | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | * Remove everything but the '''DEVICE''' and '''ONBOOT''' setting from '''<code>/etc/sysconfig/network-scripts/ifcfg-eth0</code>''' and add the following so it looks like this: | ||
| + | <syntaxhighlight> | ||
| + | DEVICE=eth0 | ||
| + | ONBOOT=yes | ||
| + | TYPE=OVSPort | ||
| + | DEVICETYPE=ovs | ||
| + | OVS_BRIDGE=br-ex | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | * Put the following into the '''<code>/etc/sysconfig/network-scripts/ifcfg-br-ex</code>''': | ||
| + | <syntaxhighlight> | ||
| + | DEVICE=br-ex | ||
| + | ONBOOT=yes | ||
| + | BOOTPROTO=static | ||
| + | TYPE=OVSBridge | ||
| + | DEVICETYPE=ovs | ||
| + | USERCTL=yes | ||
| + | PEERDNS=yes | ||
| + | IPV6INIT=no | ||
| + | IPADDR=172.25.2.10 | ||
| + | NETMASK=255.255.255.0 | ||
| + | GATEWAY=172.25.2.254 | ||
| + | DNS1=172.25.254.254 | ||
| + | SEARCH1=example.com | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ ovs-vsctl add-port br-ex eth0; systemctl restart network.service | ||
| + | [root@server2-a ~(keystone_admin)]$ hostnamectl set-hostname server2-a.example.com | ||
| + | [root@server2-a ~(keystone_admin)]$ hostname | ||
| + | server2-a.example.com | ||
| + | [root@server2-a ~(keystone_admin)]$ host server2-a.example.com | ||
| + | server2-a.example.com has address 172.25.2.10 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ ovs-vsctl show | ||
| + | cc658c36-079f-4032-aafa-18bc94250dd5 | ||
| + | Bridge br-ex | ||
| + | Port "eth0" | ||
| + | Interface "eth0" | ||
| + | Port br-ex | ||
| + | Interface br-ex | ||
| + | type: internal | ||
| + | Bridge br-int | ||
| + | Port br-int | ||
| + | Interface br-int | ||
| + | type: internal | ||
| + | ovs_version: "2.1.3" | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl start neutron-openvswitch-agent | ||
| + | [root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/openvswitch-agent.log | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl enable neutron-openvswitch-agent | ||
| + | ln -s '/usr/lib/systemd/system/neutron-openvswitch-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-openvswitch-agent.service' | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl enable neutron-ovs-cleanup | ||
| + | ln -s '/usr/lib/systemd/system/neutron-ovs-cleanup.service' '/etc/systemd/system/multi-user.target.wants/neutron-ovs-cleanup.service' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl start neutron-dhcp-agent | ||
| + | [root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/dhcp-agent.log | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl enable neutron-dhcp-agent | ||
| + | ln -s '/usr/lib/systemd/system/neutron-dhcp-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-dhcp-agent.service' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl start neutron-l3-agent | ||
| + | [root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/l3-agent.log | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl enable neutron-l3-agent | ||
| + | ln -s '/usr/lib/systemd/system/neutron-l3-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-l3-agent.service' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl start neutron-metadata-agent | ||
| + | [root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/metadata-agent.log | ||
| + | [root@server2-a ~(keystone_admin)]$ systemctl enable neutron-metadata-agent | ||
| + | ln -s '/usr/lib/systemd/system/neutron-metadata-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-metadata-agent.service' | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | [root@server2-a ~(keystone_admin)]$ openstack-status | ||
| + | ... | ||
| + | == neutron services == | ||
| + | neutron-server: active | ||
| + | neutron-dhcp-agent: active | ||
| + | neutron-l3-agent: active | ||
| + | neutron-metadata-agent: active | ||
| + | neutron-lbaas-agent: inactive (disabled on boot) | ||
| + | neutron-openvswitch-agent: active | ||
| + | neutron-linuxbridge-agent: inactive (disabled on boot) | ||
| + | neutron-ryu-agent: inactive (disabled on boot) | ||
| + | neutron-nec-agent: inactive (disabled on boot) | ||
| + | neutron-mlnx-agent: inactive (disabled on boot) | ||
| + | ... | ||
| + | == Support services == | ||
| + | mysqld: inactive (disabled on boot) | ||
| + | openvswitch: active | ||
| + | ... | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 16:06, 28 April 2015
[root@server2-a ~]# source /root/keystonerc_admin
[root@server2-a ~(keystone_admin)]$ keystone service-create --name neutron --type network --description 'OpenStack Networking Service'
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | OpenStack Networking Service |
| enabled | True |
| id | b89b02bed44e4b2fa2ae8a4933a9875c |
| name | neutron |
| type | network |
+-------------+----------------------------------+[root@server2-a ~(keystone_admin)]$ keystone endpoint-create --service-id b89b02bed44e4b2fa2ae8a4933a9875c --publicurl http://server2-a.example.com:9696 --adminurl http://server2-a.example.com:9696 --internalurl http://server2-a.example.com:9696
+-------------+-----------------------------------+
| Property | Value |
+-------------+-----------------------------------+
| adminurl | http://server2-a.example.com:9696 |
| id | 723417d124cc4088a7bf11f42c260b72 |
| internalurl | http://server2-a.example.com:9696 |
| publicurl | http://server2-a.example.com:9696 |
| region | regionOne |
| service_id | b89b02bed44e4b2fa2ae8a4933a9875c |
+-------------+-----------------------------------+[root@server2-a ~(keystone_admin)]$ keystone catalog
Service: network
+-------------+-----------------------------------+
| Property | Value |
+-------------+-----------------------------------+
| adminURL | http://server2-a.example.com:9696 |
| id | 4cbafe9f3dec4c44b5066d16ff2a8d17 |
| internalURL | http://server2-a.example.com:9696 |
| publicURL | http://server2-a.example.com:9696 |
| region | regionOne |
+-------------+-----------------------------------+
...[root@server2-a ~(keystone_admin)]$ keystone user-create --name neutron --pass redhat
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | 51f8e11cfc704a1dad36e75da259bbc8 |
| name | neutron |
| username | neutron |
+----------+----------------------------------+
[root@server2-a ~(keystone_admin)]$ keystone user-role-add --user neutron --role admin --tenant services[root@server2-a ~(keystone_admin)]$ yum -y install openvswitch openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitchNB: OpenStack networking requires a service proving AMQP - ensure that rabbitmq-server is running:
[root@server2-a ~(keystone_admin)]$ systemctl status rabbitmq-server.service
rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled)
Active: active (running) since Tue 2015-04-28 15:53:02 BST; 17min ago
...[root@server2-a ~(keystone_admin)]$ cp /etc/neutron/neutron.conf /etc/neutron/neutron.conf.orig[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf keystone_authtoken admin_tenant_name services
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf keystone_authtoken admin_user neutron
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf keystone_authtoken admin_password redhat
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf database connection mysql://neutron:redhat@172.25.2.10/neutron[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT rabbit_userid rabbitmqauth
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT rabbit_password redhat
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT rabbit_host server2-a.example.com
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT rabbit_use_ssl True
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT rabbit_port 5671[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes True
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes True
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT nova_url http://172.25.2.10:8774/v2
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT nova_admin_username nova
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT nova_admin_tenant_id $(keystone tenant-list | awk '/ services / { print $2 }')
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT nova_admin_password redhat
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT nova_admin_auth_url http://172.25.2.10:35357/v2.0[root@server2-a ~(keystone_admin)]$ cp /etc/neutron/metadata_agent.ini /etc/neutron/metadata_agent.ini.orig
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT admin_tenant_name services
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT admin_user neutron
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT admin_password redhat
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT auth_url http://172.25.2.10:35357/v2.0
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT auth_region regionOne
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_ip 172.25.2.10
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret redhat[root@server2-a ~(keystone_admin)]$ cp /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugins/ml2/ml2_conf.ini.orig
[root@server2-a ~(keystone_admin)]$ ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT core_plugin neutron.plugins.ml2.plugin.Ml2Plugin
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/neutron.conf DEFAULT service_plugins neutron.services.l3_router.l3_router_plugin.L3RouterPlugin[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini ml2 mechanism_drivers openvswitch
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini ml2 tenant_network_types vlan
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini ml2 type_drivers vlan
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini ml2_type_vlan network_vlan_ranges physnet1:1000:2000
[root@server2-a ~(keystone_admin)]$
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini securitygroup enable_security_group True
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini database sql_connection mysql://neutron:redhat@172.25.2.10/neutron
[root@server2-a ~(keystone_admin)]$
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini ovs bridge_mappings physnet1:br-ex
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/plugin.ini ovs tenant_network_type vlan[root@server2-a ~(keystone_admin)]$ cd /etc/neutron/plugins/openvswitch/
[root@server2-a openvswitch(keystone_admin)]$ cp ovs_neutron_plugin.ini ovs_neutron_plugin.ini.orig[root@server2-a openvswitch(keystone_admin)]$ crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini ovs tenant_network_type vlan
[root@server2-a openvswitch(keystone_admin)]$ crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini ovs network_vlan_ranges physnet1:1000:2000
[root@server2-a openvswitch(keystone_admin)]$ crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini ovs bridge_mappings physnet1:br-ex
[root@server2-a openvswitch(keystone_admin)]$ crudini --set /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini securitygroup firewall_driver neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver[root@server2-a ~(keystone_admin)]$ cp /etc/neutron/l3_agent.ini /etc/neutron/l3_agent.ini.orig
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/l3_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver[root@server2-a ~(keystone_admin)]$ cp /etc/neutron/dhcp_agent.ini /etc/neutron/dhcp_agent.ini.orig
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
[root@server2-a ~(keystone_admin)]$ crudini --set /etc/neutron/dhcp_agent.ini DEFAULT ovs_use_veth True[root@server2-a ~(keystone_admin)]$ openstack-db --init --service neutron --password redhat --rootpw redhat
Verified connectivity to MySQL.
Creating 'neutron' database.
Updating 'neutron' database password in /etc/neutron/neutron.conf /etc/neutron/plugin.ini
Initializing the neutron database, please wait...NB: The following error can be ignored:
ERROR 1146 (42S02) at line 1: Table 'neutron.migrate_version' doesn't exist
Final sanity check failed.
Please file a bug report on bugzilla.redhat.com against the openstack-neutron package.[root@server2-a ~(keystone_admin)]$ neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head
No handlers could be found for logger "neutron.common.legacy"
INFO [alembic.migration] Context impl MySQLImpl.
INFO [alembic.migration] Will assume non-transactional DDL.[root@server2-a ~(keystone_admin)]$ systemctl start neutron-server.service
[root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/server.log
[root@server2-a ~(keystone_admin)]$ systemctl enable neutron-server.service
ln -s '/usr/lib/systemd/system/neutron-server.service' '/etc/systemd/system/multi-user.target.wants/neutron-server.service'
[root@server2-a ~(keystone_admin)]$ openstack-status
...
== neutron services ==
neutron-server: active
neutron-dhcp-agent: inactive (disabled on boot)
neutron-l3-agent: inactive (disabled on boot)
neutron-metadata-agent: inactive (disabled on boot)
neutron-lbaas-agent: inactive (disabled on boot)
neutron-openvswitch-agent: inactive (disabled on boot)
neutron-linuxbridge-agent: inactive (disabled on boot)
neutron-ryu-agent: inactive (disabled on boot)
neutron-nec-agent: inactive (disabled on boot)
neutron-mlnx-agent: inactive (disabled on boot)
...[root@server2-a ~(keystone_admin)]$ systemctl start openvswitch.service
[root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/openvswitch/*
[root@server2-a ~(keystone_admin)]$ systemctl enable openvswitch.service
ln -s '/usr/lib/systemd/system/openvswitch.service' '/etc/systemd/system/multi-user.target.wants/openvswitch.service'[root@server2-a ~(keystone_admin)]$ cp /etc/sysctl.conf /etc/sysctl.conf.orig
[root@server2-a ~(keystone_admin)]$ echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@server2-a ~(keystone_admin)]$ echo "net.ipv4.conf.all.rp_filter=0" >> /etc/sysctl.conf
[root@server2-a ~(keystone_admin)]$ echo "net.ipv4.conf.default.rp_filter=0" >> /etc/sysctl.conf
[root@server2-a ~(keystone_admin)]$ sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0[root@server2-a ~(keystone_admin)]$ ovs-vsctl add-br br-int
[root@server2-a ~(keystone_admin)]$ ovs-vsctl add-br br-ex
[root@server2-a ~(keystone_admin)]$ ovs-vsctl show
cc658c36-079f-4032-aafa-18bc94250dd5
Bridge br-ex
Port br-ex
Interface br-ex
type: internal
Bridge br-int
Port br-int
Interface br-int
type: internal
ovs_version: "2.1.3"[root@server2-a ~(keystone_admin)]$ cp /etc/sysconfig/network-scripts/ifcfg-eth0 /root/- Remove everything but the DEVICE and ONBOOT setting from
/etc/sysconfig/network-scripts/ifcfg-eth0and add the following so it looks like this:
DEVICE=eth0
ONBOOT=yes
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex- Put the following into the
/etc/sysconfig/network-scripts/ifcfg-br-ex:
DEVICE=br-ex
ONBOOT=yes
BOOTPROTO=static
TYPE=OVSBridge
DEVICETYPE=ovs
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
IPADDR=172.25.2.10
NETMASK=255.255.255.0
GATEWAY=172.25.2.254
DNS1=172.25.254.254
SEARCH1=example.com[root@server2-a ~(keystone_admin)]$ ovs-vsctl add-port br-ex eth0; systemctl restart network.service
[root@server2-a ~(keystone_admin)]$ hostnamectl set-hostname server2-a.example.com
[root@server2-a ~(keystone_admin)]$ hostname
server2-a.example.com
[root@server2-a ~(keystone_admin)]$ host server2-a.example.com
server2-a.example.com has address 172.25.2.10[root@server2-a ~(keystone_admin)]$ ovs-vsctl show
cc658c36-079f-4032-aafa-18bc94250dd5
Bridge br-ex
Port "eth0"
Interface "eth0"
Port br-ex
Interface br-ex
type: internal
Bridge br-int
Port br-int
Interface br-int
type: internal
ovs_version: "2.1.3"[root@server2-a ~(keystone_admin)]$ systemctl start neutron-openvswitch-agent
[root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/openvswitch-agent.log
[root@server2-a ~(keystone_admin)]$ systemctl enable neutron-openvswitch-agent
ln -s '/usr/lib/systemd/system/neutron-openvswitch-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-openvswitch-agent.service'
[root@server2-a ~(keystone_admin)]$ systemctl enable neutron-ovs-cleanup
ln -s '/usr/lib/systemd/system/neutron-ovs-cleanup.service' '/etc/systemd/system/multi-user.target.wants/neutron-ovs-cleanup.service'[root@server2-a ~(keystone_admin)]$ systemctl start neutron-dhcp-agent
[root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/dhcp-agent.log
[root@server2-a ~(keystone_admin)]$ systemctl enable neutron-dhcp-agent
ln -s '/usr/lib/systemd/system/neutron-dhcp-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-dhcp-agent.service'[root@server2-a ~(keystone_admin)]$ systemctl start neutron-l3-agent
[root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/l3-agent.log
[root@server2-a ~(keystone_admin)]$ systemctl enable neutron-l3-agent
ln -s '/usr/lib/systemd/system/neutron-l3-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-l3-agent.service'[root@server2-a ~(keystone_admin)]$ systemctl start neutron-metadata-agent
[root@server2-a ~(keystone_admin)]$ egrep 'ERROR|CRITICAL' /var/log/neutron/metadata-agent.log
[root@server2-a ~(keystone_admin)]$ systemctl enable neutron-metadata-agent
ln -s '/usr/lib/systemd/system/neutron-metadata-agent.service' '/etc/systemd/system/multi-user.target.wants/neutron-metadata-agent.service'[root@server2-a ~(keystone_admin)]$ openstack-status
...
== neutron services ==
neutron-server: active
neutron-dhcp-agent: active
neutron-l3-agent: active
neutron-metadata-agent: active
neutron-lbaas-agent: inactive (disabled on boot)
neutron-openvswitch-agent: active
neutron-linuxbridge-agent: inactive (disabled on boot)
neutron-ryu-agent: inactive (disabled on boot)
neutron-nec-agent: inactive (disabled on boot)
neutron-mlnx-agent: inactive (disabled on boot)
...
== Support services ==
mysqld: inactive (disabled on boot)
openvswitch: active
...