حال دستورات زیر را به منظور اعمال دسترسی و تغییر گروه به فایل پیکربندی neutron.conf وارد نمایید:
# chmod 640 /etc/neutron/neutron.conf
# chgrp neutron /etc/neutron/neutron.conf
در ادامه میبایست چهار فایل را پیکربندی نمایید:
# vi /etc/neutron/l3_agent.ini
# line 17: add
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# line 100: add ( it's OK with no value (set later if need) )
external_network_bridge =
# vi /etc/neutron/dhcp_agent.ini
# line 17: add
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# line 32: uncomment
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
# line 41: uncomment and change
enable_isolated_metadata = True
# vi /etc/neutron/metadata_agent.ini
# line 22: uncomment and specify Nova API server
nova_metadata_ip = 10.0.0.30
# line 34: uncomment and specify any secret key you like
metadata_proxy_shared_secret = metadata_secret
# vi /etc/neutron/plugins/ml2/ml2_conf.ini
# line 114: add ( it's OK with no value for "tenant_network_types" (set later if need) )
[ml2]
type_drivers = flat,vlan,gre,vxlan
tenant_network_types =
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security
# line 247: uncomment and add
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
# end line: uncomment
enable_ipset = True
# chmod 640 /etc/neutron/neutron.conf
# chgrp neutron /etc/neutron/neutron.conf
در ادامه میبایست چهار فایل را پیکربندی نمایید:
# vi /etc/neutron/l3_agent.ini
# line 17: add
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# line 100: add ( it's OK with no value (set later if need) )
external_network_bridge =
# vi /etc/neutron/dhcp_agent.ini
# line 17: add
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
# line 32: uncomment
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
# line 41: uncomment and change
enable_isolated_metadata = True
# vi /etc/neutron/metadata_agent.ini
# line 22: uncomment and specify Nova API server
nova_metadata_ip = 10.0.0.30
# line 34: uncomment and specify any secret key you like
metadata_proxy_shared_secret = metadata_secret
# vi /etc/neutron/plugins/ml2/ml2_conf.ini
# line 114: add ( it's OK with no value for "tenant_network_types" (set later if need) )
[ml2]
type_drivers = flat,vlan,gre,vxlan
tenant_network_types =
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security
# line 247: uncomment and add
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
# end line: uncomment
enable_ipset = True
گام3: اگر سرویس SELinux بر روی سرور شما فعال است، میبایست Policyهای آن را بصورت زیر تغییر دهید:
ابتدا دستور زیر را اجرا نموده:
# setsebool -P neutron_can_network on
و بعد فایل پیکربندی neutron-net_pol.te را توسط ویرایشگر متنی vi باز (ایجاد) کرده:
# vi neutron-net_pol.te
و سپس خطوط زیر را در آن وارد نمایید:
# create new
module neutron-net_pol 1.0;
require {
type sysfs_t;
type http_port_t;
type neutron_t;
type neutron_tmp_t;
type hostname_exec_t;
type ovsdb_port_t;
type openvswitch_t;
type openflow_port_t;
class file { execute execute_no_trans getattr open read };
class dir search;
class sock_file { create write unlink getattr setattr };
class tcp_socket { name_bind name_connect };
class filesystem getattr;
}
#============= neutron_t ==============
allow neutron_t neutron_tmp_t:sock_file create;
allow neutron_t http_port_t:tcp_socket name_bind;
allow neutron_t sysfs_t:filesystem getattr;
allow neutron_t neutron_tmp_t:sock_file { create write getattr unlink setattr };
allow neutron_t openflow_port_t:tcp_socket name_bind;
#============= openvswitch_t ==============
allow openvswitch_t neutron_t:file { getattr open read };
allow openvswitch_t ovsdb_port_t:tcp_socket name_bind;
allow openvswitch_t hostname_exec_t:file { execute execute_no_trans getattr open read };
allow openvswitch_t neutron_t:dir search;
در آخر فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
ابتدا دستور زیر را اجرا نموده:
# setsebool -P neutron_can_network on
و بعد فایل پیکربندی neutron-net_pol.te را توسط ویرایشگر متنی vi باز (ایجاد) کرده:
# vi neutron-net_pol.te
و سپس خطوط زیر را در آن وارد نمایید:
# create new
module neutron-net_pol 1.0;
require {
type sysfs_t;
type http_port_t;
type neutron_t;
type neutron_tmp_t;
type hostname_exec_t;
type ovsdb_port_t;
type openvswitch_t;
type openflow_port_t;
class file { execute execute_no_trans getattr open read };
class dir search;
class sock_file { create write unlink getattr setattr };
class tcp_socket { name_bind name_connect };
class filesystem getattr;
}
#============= neutron_t ==============
allow neutron_t neutron_tmp_t:sock_file create;
allow neutron_t http_port_t:tcp_socket name_bind;
allow neutron_t sysfs_t:filesystem getattr;
allow neutron_t neutron_tmp_t:sock_file { create write getattr unlink setattr };
allow neutron_t openflow_port_t:tcp_socket name_bind;
#============= openvswitch_t ==============
allow openvswitch_t neutron_t:file { getattr open read };
allow openvswitch_t ovsdb_port_t:tcp_socket name_bind;
allow openvswitch_t hostname_exec_t:file { execute execute_no_trans getattr open read };
allow openvswitch_t neutron_t:dir search;
در آخر فایل پیکربندی مزبور را ذخیره کرده و از آن خارج شوید.
حال دستورات زیر را اجرا نمایید:
# checkmodule -m -M -o neutron-net_pol.mod neutron-net_pol.te
# semodule_package —outfile neutron-net_pol.pp —module neutron-net_pol.mod
# semodule -i neutron-net_pol.pp
# checkmodule -m -M -o neutron-net_pol.mod neutron-net_pol.te
# semodule_package —outfile neutron-net_pol.pp —module neutron-net_pol.mod
# semodule -i neutron-net_pol.pp
گام4: در آخر کافیست یک Soft Link از فایل پیکربندی ml2_conf.ini به plugin.ini ایجاد نموده و سپس سرویس openvswitch را جهت اجرا start و به منظور اجرای خودکار در پروسههای boot بعدی enable نمایید:
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
# systemctl start openvswitch
# systemctl enable openvswitch
در نهایت نیز دستورات زیر را اجرا کنید:
# ovs-vsctl add-br br-int
# for service in dhcp-agent l3-agent metadata-agent openvswitch-agent; do
systemctl start neutron-$service
systemctl enable neutron-$service
done
# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
# systemctl start openvswitch
# systemctl enable openvswitch
در نهایت نیز دستورات زیر را اجرا کنید:
# ovs-vsctl add-br br-int
# for service in dhcp-agent l3-agent metadata-agent openvswitch-agent; do
systemctl start neutron-$service
systemctl enable neutron-$service
done
اما به منظور پیکربندی سرور سوم یعنی Compute Node در سناریو شکل 27-13، کافیست تا گامهای زیر را دنبال نمایید، از آنجاییکه دستورات بسیار شبیه دستورات مرحله قبل هستند، بنابراین از توضیح اضافه در مورد آنها اجتناب خواهیم کرد:
گام1: نصب Neutron Serviceها بر روی Compute Node
گام1: نصب Neutron Serviceها بر روی Compute Node