这一节描述在计算节点上安装与配置Neutron服务。
1、配置前的准备工作
在安装与配置Neutron服务前,你必须配置一些内核网络参数:
a、编辑/etc/sysctl.conf,包含如下内容
net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1
b、使改变立即生效
$sysctl -p
c、添加neutron用户
useradd neutron
2、在Compute节点上安装Neutron
安装openvswitch相关
yum -y install openvswitch* ipset
安装neutron
git clone git://git.openstack.org/openstack/neutron cd neutron pip install -r requirements.txt python setup.py install
新建/etc/neutron,拷贝配置文件
mkdir /etc/neutron cp -r ./etc/* /etc/neutron/
新建/var/log/neutron 及用户neutron,并修改文件夹权限
mkdir /var/log/neutron useradd neutron chown -R neutron:neutron /var/log/neutron
2、配置Neutron通用组建
网络通用服务组建的配置包括数据库、认证服务、消息队列、插件。
编辑/etc/neutron/neutron.conf文件,完成如下步骤:
a、注释掉[database]中的connection选项。因为网络节点不需要直接连接数据库。
b、配置[default]区、[oslo_messaging_rabbit],配置消息队列的访问
[DEFAULT] ... rpc_backend = rabbit [oslo_messaging_rabbit] ... rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS
将RABBIT_PASS替换为自己的数据库密码
c、配置[DEFAULT]、[keystone_authtoken]区,配置认证服务的访问:
[DEFAULT] ... auth_strategy = keystone [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS
将NEUTRON_PASS替换为自己的密码
d、配置[DEFAULT]区,使能ml2插件、路由服务、浮动IP
[DEFAULT] ... core_plugin = ml2 service_plugins = router allow_overlapping_ips = True
e、配置verbose 与log_path
[DEFAULT] ... verbose = True ... log_dir = /var/log/neutron
3、配置二层插件ML2
ML2插件使用OpenVswitch、代理操作虚拟网络架构的网络。
编辑/etc/neutron/neutron/plugins/ml2/ml2_conf.ini,完成如下步骤:
a、在[ml2]区,使得flat、VLAN、GRE、VXLAN网络类型的驱动,租户网络类型为GRE,采用OpenVswitch机制
[ml2] ... type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch
b、在[ml2_type_gre]区配置隧道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
d、在[ovs]区,使能隧道,配置本地隧道端点
[ovs] ... local_ip = INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS
e、在[agent]区,使能GRE隧道
[agent] ... tunnel_types = gre
4、配置Open vSwitch(OVS)服务
OVS服务为虚拟主机提供整个虚拟网络的架构,启动、设置OVS服务开机自启动.
$ systemctl start openvswitch.service $ systemctl enable openvswitch.service
5、配置Nova使用Neutron网络
默认情况下,Nova使用传统网络,你必须重新配置Nova来使用Neutron。
在compute节点上,编辑/etc/nova/nova.conf,完成如下步骤:
a、在[DEFAULT]配置APIs与驱动
[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使用内部防火墙服务。因为Neutron包括了防火墙服务,这里我们使用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
将NEUTRON_PASS换成你的密码。
c、重启nova-compute服务
systemctl restart nova-compute.service
6、完成安装
a、网络服务的初始化脚本包含了一个指向/etc/neutron/neutron/plugins/ml2/ml2_conf.ini的 /etc/neutron/plugin.ini文件,所以使用如下命令生产软链接
ln -s /etc/neutron/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
b、创建启动脚本
创建并编辑 /usr/lib/systemd/system/neutron-openvswitch-agent.service
[Unit] Description=OpenStack Neutron Open vSwitch Agent After=syslog.target network.target [Service] Type=simple User=root ExecStart=/usr/bin/neutron-openvswitch-agent --config-file /etc/neutron/plugin.ini --log-file /var/log/neutron/openvswitch-agent.log PrivateTmp=true KillMode=process [Install] WantedBy=multi-user.target
c、启动与设置开机启动neutron openvswitch agent服务
$systemctl enable neutron-openvswitch-agent.service $systemctl start neutron-openvswitch-agent.service
7、验证安装
在controller节点上加载admin-openrc.sh,设置全局变量
$ source admin-openrc.sh
b、显示agents验证成功启动的neutron agents
$neutron agent-list +--------------------------------------+--------------------+-----------+-------+----------------+---------------------------+ | id | agent_type | host | alive | admin_state_up | binary | +--------------------------------------+--------------------+-----------+-------+----------------+---------------------------+ | 2f04f990-bd61-485e-aa6a-38de67b6fea4 | DHCP agent | controller| :-) | True | neutron-dhcp-agent | | b4cba626-bbfd-44c2-a750-7c3145875c25 | L3 agent | controller| :-) | True | neutron-l3-agent | | d7082e16-bffa-491f-aca0-f293d8224acf | Open vSwitch agent | controller| :-) | True | neutron-openvswitch-agent | | f4c22739-31a3-4a80-b175-285c7ce2c06e | Metadata agent | controller| :-) | True | neutron-metadata-agent | | f9230615-5cb1-41ac-9a25-83e6cb14a551 | Open vSwitch agent | compute1 | :-) | True | neutron-openvswitch-agent | +--------------------------------------+--------------------+-----------+-------+----------------+---------------------------+