Add linuxbridge as option to ansible
Allows the user to configure neutron_plugin_agent value for Ansible. Current allowed values are openvswitch and linuxbridge. Implements: blueprint ansible-neutron-linuxbridge Change-Id: I0572464a5459d2f9da09b6da22db16e240511f99
This commit is contained in:
parent
38418befc0
commit
b401a90254
@ -37,6 +37,11 @@ docker_neutron_openvswitch_agent_image: "{{ docker_neutron_registry }}{{ docker_
|
|||||||
docker_neutron_openvswitch_agent_tag: "{{ openstack_release }}"
|
docker_neutron_openvswitch_agent_tag: "{{ openstack_release }}"
|
||||||
docker_neutron_openvswitch_agent_image_full: "{{ docker_neutron_openvswitch_agent_image }}:{{ docker_neutron_openvswitch_agent_tag }}"
|
docker_neutron_openvswitch_agent_image_full: "{{ docker_neutron_openvswitch_agent_image }}:{{ docker_neutron_openvswitch_agent_tag }}"
|
||||||
|
|
||||||
|
kolla_neutron_linuxbridge_agent_container_name: "neutron-linuxbridge-agent"
|
||||||
|
docker_neutron_linuxbridge_agent_image: "{{ docker_neutron_registry }}{{ docker_neutron_namespace }}/{{ kolla_neutron_base_distro }}-{{ kolla_neutron_install_type }}-{{ kolla_neutron_linuxbridge_agent_container_name }}"
|
||||||
|
docker_neutron_linuxbridge_agent_tag: "{{ openstack_release }}"
|
||||||
|
docker_neutron_linuxbridge_agent_image_full: "{{ docker_neutron_linuxbridge_agent_image }}:{{ docker_neutron_linuxbridge_agent_tag }}"
|
||||||
|
|
||||||
kolla_openvswitch_db_container_name: "ovs-db-server"
|
kolla_openvswitch_db_container_name: "ovs-db-server"
|
||||||
docker_openvswitch_db_image: "{{ docker_neutron_registry }}{{ docker_neutron_namespace }}/{{ kolla_neutron_base_distro }}-{{ kolla_neutron_install_type }}-{{ kolla_openvswitch_db_container_name }}"
|
docker_openvswitch_db_image: "{{ docker_neutron_registry }}{{ docker_neutron_namespace }}/{{ kolla_neutron_base_distro }}-{{ kolla_neutron_install_type }}-{{ kolla_openvswitch_db_container_name }}"
|
||||||
docker_openvswitch_db_tag: "{{ openstack_release }}"
|
docker_openvswitch_db_tag: "{{ openstack_release }}"
|
||||||
|
@ -63,6 +63,12 @@
|
|||||||
config_dest: "{{ node_config_directory }}/{{ service_name }}/dhcp_agent.ini"
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/dhcp_agent.ini"
|
||||||
when: inventory_hostname in groups['neutron-agents']
|
when: inventory_hostname in groups['neutron-agents']
|
||||||
|
|
||||||
|
- name: Copying over config(s)
|
||||||
|
template:
|
||||||
|
src: "dnsmasq.conf.j2"
|
||||||
|
dest: "{{ node_config_directory }}/neutron-agents/dnsmasq.conf"
|
||||||
|
when: inventory_hostname in groups['neutron-agents']
|
||||||
|
|
||||||
- include: ../../config.yml
|
- include: ../../config.yml
|
||||||
vars:
|
vars:
|
||||||
service_name: "neutron-agents"
|
service_name: "neutron-agents"
|
||||||
@ -101,7 +107,7 @@
|
|||||||
|
|
||||||
- include: ../../config.yml
|
- include: ../../config.yml
|
||||||
vars:
|
vars:
|
||||||
service_name: "neutron-openvswitch-agent"
|
service_name: "neutron-{{ neutron_plugin_agent }}-agent"
|
||||||
config_source:
|
config_source:
|
||||||
- "roles/{{ project_name }}/templates/neutron.conf.j2"
|
- "roles/{{ project_name }}/templates/neutron.conf.j2"
|
||||||
- "/etc/kolla/config/global.conf"
|
- "/etc/kolla/config/global.conf"
|
||||||
@ -117,12 +123,11 @@
|
|||||||
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_augment"
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ project_name }}.conf_augment"
|
||||||
- "{{ node_templates_directory }}/{{ service_name }}/{{ service_name }}.conf_augment"
|
- "{{ node_templates_directory }}/{{ service_name }}/{{ service_name }}.conf_augment"
|
||||||
config_dest: "{{ node_config_directory }}/{{ service_name }}/neutron.conf"
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/neutron.conf"
|
||||||
when: inventory_hostname in groups['neutron-agents'] or
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
inventory_hostname in groups['compute']
|
|
||||||
|
|
||||||
- include: ../../config.yml
|
- include: ../../config.yml
|
||||||
vars:
|
vars:
|
||||||
service_name: "neutron-openvswitch-agent"
|
service_name: "neutron-{{ neutron_plugin_agent }}-agent"
|
||||||
config_source:
|
config_source:
|
||||||
- "roles/{{ project_name }}/templates/ml2_conf.ini.j2"
|
- "roles/{{ project_name }}/templates/ml2_conf.ini.j2"
|
||||||
- "/etc/kolla/config/{{ project_name }}/ml2_conf.ini"
|
- "/etc/kolla/config/{{ project_name }}/ml2_conf.ini"
|
||||||
@ -130,5 +135,4 @@
|
|||||||
- "{{ node_templates_directory }}/{{ service_name }}/ml2_conf.ini_minimal"
|
- "{{ node_templates_directory }}/{{ service_name }}/ml2_conf.ini_minimal"
|
||||||
- "{{ node_templates_directory }}/{{ service_name }}/ml2_conf.ini_augment"
|
- "{{ node_templates_directory }}/{{ service_name }}/ml2_conf.ini_augment"
|
||||||
config_dest: "{{ node_config_directory }}/{{ service_name }}/ml2_conf.ini"
|
config_dest: "{{ node_config_directory }}/{{ service_name }}/ml2_conf.ini"
|
||||||
when: inventory_hostname in groups['neutron-agents'] or
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
inventory_hostname in groups['compute']
|
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
container_name: "openvswitch_db"
|
container_name: "openvswitch_db"
|
||||||
container_volumes:
|
container_volumes:
|
||||||
- "/run:/run"
|
- "/run:/run"
|
||||||
when: inventory_hostname in groups['compute'] or
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
inventory_hostname in groups['neutron-agents']
|
and neutron_plugin_agent == "openvswitch"
|
||||||
|
|
||||||
- include: ../../start.yml
|
- include: ../../start.yml
|
||||||
vars:
|
vars:
|
||||||
@ -20,13 +20,25 @@
|
|||||||
container_volumes:
|
container_volumes:
|
||||||
- "/run:/run"
|
- "/run:/run"
|
||||||
- "/lib/modules:/lib/modules:ro"
|
- "/lib/modules:/lib/modules:ro"
|
||||||
when: inventory_hostname in groups['compute'] or
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
inventory_hostname in groups['neutron-agents']
|
and neutron_plugin_agent == "openvswitch"
|
||||||
|
|
||||||
- name: Ensuring OVS bridge is properly setup
|
- name: Ensuring OVS bridge is properly setup
|
||||||
command: docker exec openvswitch_vswitchd /opt/kolla/ovs_ensure_configured.sh {{ neutron_bridge_name }} {{ neutron_interface }}
|
command: docker exec openvswitch_vswitchd /opt/kolla/ovs_ensure_configured.sh {{ neutron_bridge_name }} {{ neutron_external_interface }}
|
||||||
register: status
|
register: status
|
||||||
changed_when: status.stdout.find('changed') != -1
|
changed_when: status.stdout.find('changed') != -1
|
||||||
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
|
and neutron_plugin_agent == "openvswitch"
|
||||||
|
|
||||||
|
- include: ../../start.yml
|
||||||
|
vars:
|
||||||
|
container_environment:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
container_image: "{{ docker_neutron_server_image_full }}"
|
||||||
|
container_name: "neutron_server"
|
||||||
|
container_volumes:
|
||||||
|
- "{{ node_config_directory }}/neutron-server/:/opt/kolla/neutron-server/:ro"
|
||||||
|
when: inventory_hostname in groups['neutron-server']
|
||||||
|
|
||||||
- include: ../../start.yml
|
- include: ../../start.yml
|
||||||
vars:
|
vars:
|
||||||
@ -39,8 +51,24 @@
|
|||||||
- "/run:/run"
|
- "/run:/run"
|
||||||
- "/lib/modules:/lib/modules:ro"
|
- "/lib/modules:/lib/modules:ro"
|
||||||
- "{{ node_config_directory }}/neutron-openvswitch-agent/:/opt/kolla/neutron-openvswitch-agent/:ro"
|
- "{{ node_config_directory }}/neutron-openvswitch-agent/:/opt/kolla/neutron-openvswitch-agent/:ro"
|
||||||
when: inventory_hostname in groups['compute'] or
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
inventory_hostname in groups['neutron-agents']
|
and neutron_plugin_agent == "openvswitch"
|
||||||
|
|
||||||
|
- include: ../../start.yml
|
||||||
|
vars:
|
||||||
|
container_environment:
|
||||||
|
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
||||||
|
NEUTRON_BRIDGE: "br-ex"
|
||||||
|
NEUTRON_INTERFACE: "{{ neutron_external_interface }}"
|
||||||
|
container_image: "{{ docker_neutron_linuxbridge_agent_image_full }}"
|
||||||
|
container_name: "neutron_linuxbridge_agent"
|
||||||
|
container_privileged: "True"
|
||||||
|
container_volumes:
|
||||||
|
- "/run:/run"
|
||||||
|
- "/lib/modules:/lib/modules:ro"
|
||||||
|
- "{{ node_config_directory }}/neutron-linuxbridge-agent/:/opt/kolla/neutron-linuxbridge-agent/:ro"
|
||||||
|
when: (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
|
||||||
|
and neutron_plugin_agent == "linuxbridge"
|
||||||
|
|
||||||
- include: ../../start.yml
|
- include: ../../start.yml
|
||||||
vars:
|
vars:
|
||||||
@ -54,12 +82,3 @@
|
|||||||
- "{{ node_config_directory }}/neutron-agents/:/opt/kolla/neutron-agents/:ro"
|
- "{{ node_config_directory }}/neutron-agents/:/opt/kolla/neutron-agents/:ro"
|
||||||
when: inventory_hostname in groups['neutron-agents']
|
when: inventory_hostname in groups['neutron-agents']
|
||||||
|
|
||||||
- include: ../../start.yml
|
|
||||||
vars:
|
|
||||||
container_environment:
|
|
||||||
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
|
|
||||||
container_image: "{{ docker_neutron_server_image_full }}"
|
|
||||||
container_name: "neutron_server"
|
|
||||||
container_volumes:
|
|
||||||
- "{{ node_config_directory }}/neutron-server/:/opt/kolla/neutron-server/:ro"
|
|
||||||
when: inventory_hostname in groups['neutron-server']
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
# dhcp_agent.ini
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
# DHCP Agent
|
dnsmasq_config_file = /etc/neutron/dnsmasq.conf
|
||||||
#dnsmasq_config_file = /etc/neutron/dnsmasq.conf
|
|
||||||
dhcp_delete_namespaces = true
|
dhcp_delete_namespaces = true
|
||||||
|
2
ansible/roles/neutron/templates/dnsmasq.conf.j2
Normal file
2
ansible/roles/neutron/templates/dnsmasq.conf.j2
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
dhcp-option-force=26,1450
|
||||||
|
log-facility=/var/log/neutron/dnsmasq.log
|
@ -1,8 +1,6 @@
|
|||||||
|
# l3_agent.ini
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
# L3 Agent
|
|
||||||
router_delete_namespaces = true
|
router_delete_namespaces = true
|
||||||
#router_distributed = true
|
|
||||||
enable_metadata_proxy = true
|
enable_metadata_proxy = true
|
||||||
agent_mode = legacy
|
agent_mode = legacy
|
||||||
external_network_bridge = br-ex
|
external_network_bridge =
|
||||||
#ha_vrrp_auth_password = c0b4e8f922a7b03d1def93b516da81d8103c83c2
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# metadata_agent.ini
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
nova_metadata_ip = {{ kolla_internal_address }}
|
nova_metadata_ip = {{ kolla_internal_address }}
|
||||||
metadata_proxy_shared_secret = {{ metadata_secret }}
|
metadata_proxy_shared_secret = {{ metadata_secret }}
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
# TODO(SamYaple): Make entire file more configurable configurable
|
# ml2_conf.ini
|
||||||
|
|
||||||
[ml2]
|
[ml2]
|
||||||
# Changing type_drivers after bootstrap can lead to database inconsistencies
|
# Changing type_drivers after bootstrap can lead to database inconsistencies
|
||||||
type_drivers = flat,vlan,vxlan
|
type_drivers = flat,vlan,vxlan
|
||||||
tenant_network_types = vxlan
|
tenant_network_types = vxlan
|
||||||
|
|
||||||
|
{% if neutron_plugin_agent == "openvswitch" %}
|
||||||
mechanism_drivers = openvswitch,l2population
|
mechanism_drivers = openvswitch,l2population
|
||||||
|
{% elif neutron_plugin_agent == "linuxbridge" %}
|
||||||
|
mechanism_drivers = linuxbridge,l2population
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[ml2_type_vlan]
|
[ml2_type_vlan]
|
||||||
#network_vlan_ranges = external:1000:1999
|
#network_vlan_ranges = external:1000:1999
|
||||||
@ -20,7 +24,11 @@ vni_ranges = 1:1000
|
|||||||
vxlan_group = 239.1.1.1
|
vxlan_group = 239.1.1.1
|
||||||
|
|
||||||
[securitygroup]
|
[securitygroup]
|
||||||
|
{% if neutron_plugin_agent == "openvswitch" %}
|
||||||
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
|
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
|
||||||
|
{% elif neutron_plugin_agent == "linuxbridge" %}
|
||||||
|
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
|
||||||
|
{% endif %}
|
||||||
enable_ipset = true
|
enable_ipset = true
|
||||||
enable_security_group = true
|
enable_security_group = true
|
||||||
|
|
||||||
@ -28,8 +36,15 @@ enable_security_group = true
|
|||||||
tunnel_types = vxlan
|
tunnel_types = vxlan
|
||||||
l2_population = true
|
l2_population = true
|
||||||
arp_responder = true
|
arp_responder = true
|
||||||
#enable_distributed_routing = true
|
|
||||||
|
|
||||||
|
{% if neutron_plugin_agent == "openvswitch" %}
|
||||||
[ovs]
|
[ovs]
|
||||||
local_ip = {{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}
|
|
||||||
bridge_mappings = physnet1:{{ neutron_bridge_name }}
|
bridge_mappings = physnet1:{{ neutron_bridge_name }}
|
||||||
|
{% elif neutron_plugin_agent == "linuxbridge" %}
|
||||||
|
[linux_bridge]
|
||||||
|
physical_interface_mappings = physnet1:{{ neutron_external_interface }}
|
||||||
|
|
||||||
|
[vxlan]
|
||||||
|
l2_population = true
|
||||||
|
{% endif %}
|
||||||
|
local_ip = {{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
# neutron.conf
|
||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
verbose = true
|
verbose = true
|
||||||
debug = true
|
debug = true
|
||||||
@ -9,7 +10,11 @@ api_paste_config = /usr/share/neutron/api-paste.ini
|
|||||||
|
|
||||||
notification_driver = neutron.openstack.common.notifier.rpc_notifier
|
notification_driver = neutron.openstack.common.notifier.rpc_notifier
|
||||||
|
|
||||||
|
{% if neutron_plugin_agent == "openvswitch" %}
|
||||||
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
|
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
|
||||||
|
{% elif neutron_plugin_agent == "linuxbridge" %}
|
||||||
|
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
allow_overlapping_ips = true
|
allow_overlapping_ips = true
|
||||||
core_plugin = ml2
|
core_plugin = ml2
|
||||||
|
@ -15,7 +15,12 @@ virt_type = kvm
|
|||||||
security_group_api = neutron
|
security_group_api = neutron
|
||||||
network_api_class = nova.network.neutronv2.api.API
|
network_api_class = nova.network.neutronv2.api.API
|
||||||
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
firewall_driver = nova.virt.firewall.NoopFirewallDriver
|
||||||
|
|
||||||
|
{% if neutron_plugin_agent == "openvswitch" %}
|
||||||
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
|
linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
|
||||||
|
{% elif neutron_plugin_agent == "linuxbridge" %}
|
||||||
|
linuxnet_interface_driver = nova.network.linux_net.BridgeInterfaceDriver
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
compute_driver = libvirt.LibvirtDriver
|
compute_driver = libvirt.LibvirtDriver
|
||||||
allow_resize_to_same_host = true
|
allow_resize_to_same_host = true
|
||||||
@ -67,5 +72,5 @@ username = nova
|
|||||||
password = {{ nova_keystone_password }}
|
password = {{ nova_keystone_password }}
|
||||||
|
|
||||||
[libvirt]
|
[libvirt]
|
||||||
connection_type = libivrt
|
connection_type = libvirt
|
||||||
inject_partition = -2
|
inject_partition = -2
|
||||||
|
@ -8,3 +8,13 @@ if [[ -f "$SOURCE" ]]; then
|
|||||||
chown ${OWNER}: $TARGET
|
chown ${OWNER}: $TARGET
|
||||||
chmod 0644 $TARGET
|
chmod 0644 $TARGET
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
SOURCE="/opt/kolla/neutron-linuxbridge-agent/ml2_conf.ini"
|
||||||
|
TARGET="/etc/neutron/plugins/ml2/ml2_conf.ini"
|
||||||
|
OWNER="neutron"
|
||||||
|
|
||||||
|
if [[ -f "$SOURCE" ]]; then
|
||||||
|
cp $SOURCE $TARGET
|
||||||
|
chown ${OWNER}: $TARGET
|
||||||
|
chmod 0644 $TARGET
|
||||||
|
fi
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
set -o errexit
|
set -o errexit
|
||||||
|
|
||||||
CMD="/usr/bin/neutron-linuxbridge-agent"
|
CMD="/usr/bin/neutron-linuxbridge-agent"
|
||||||
ARGS="--config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-dir /etc/neutron"
|
ARGS="--config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini"
|
||||||
|
|
||||||
# Loading common functions.
|
# Loading common functions.
|
||||||
source /opt/kolla/kolla-common.sh
|
source /opt/kolla/kolla-common.sh
|
||||||
|
@ -11,7 +11,4 @@ source /opt/kolla/config-sudoers.sh
|
|||||||
# Config-internal script exec out of this function, it does not return here.
|
# Config-internal script exec out of this function, it does not return here.
|
||||||
set_configs
|
set_configs
|
||||||
|
|
||||||
# Set !requiretty
|
|
||||||
source /opt/kolla/config-sudoers.sh
|
|
||||||
|
|
||||||
exec $CMD $ARGS
|
exec $CMD $ARGS
|
||||||
|
@ -54,13 +54,17 @@ docker_restart_policy_retry: "10"
|
|||||||
####################
|
####################
|
||||||
# The interface to use for various services types
|
# The interface to use for various services types
|
||||||
network_interface: "eth0"
|
network_interface: "eth0"
|
||||||
neutron_interface: "eth1"
|
neutron_external_interface: "eth1"
|
||||||
|
|
||||||
# These can be adjusted for even more customization
|
# These can be adjusted for even more customization
|
||||||
api_interface: "{{ network_interface }}"
|
api_interface: "{{ network_interface }}"
|
||||||
storage_interface: "{{ network_interface }}"
|
storage_interface: "{{ network_interface }}"
|
||||||
tunnel_interface: "{{ network_interface }}"
|
tunnel_interface: "{{ network_interface }}"
|
||||||
|
|
||||||
|
# Valid options are [ openvswitch, linuxbridge ]
|
||||||
|
neutron_plugin_agent: "openvswitch"
|
||||||
|
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Openstack options
|
# Openstack options
|
||||||
####################
|
####################
|
||||||
|
Loading…
Reference in New Issue
Block a user