Skip to content
Snippets Groups Projects
Commit d6db2569 authored by Jenkins's avatar Jenkins Committed by Gerrit Code Review
Browse files

Merge "Add OpenDaylight role"

parents 7d79202c 57496c41
No related branches found
No related tags found
No related merge requests found
Showing
with 475 additions and 11 deletions
...@@ -122,7 +122,7 @@ bifrost_network_interface: "{{ network_interface }}" ...@@ -122,7 +122,7 @@ bifrost_network_interface: "{{ network_interface }}"
dns_interface: "{{ network_interface }}" dns_interface: "{{ network_interface }}"
tunnel_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}" tunnel_interface_address: "{{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}"
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_dvs ] # Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_dvs, opendaylight ]
neutron_plugin_agent: "openvswitch" neutron_plugin_agent: "openvswitch"
# The default ports used by each service. # The default ports used by each service.
...@@ -260,6 +260,19 @@ watcher_api_port: "9322" ...@@ -260,6 +260,19 @@ watcher_api_port: "9322"
zun_api_port: "9517" zun_api_port: "9517"
opendaylight_clustering_port: "2550"
opendaylight_restconf_port: "8087"
opendaylight_restconf_port_backup: "8182"
opendaylight_haproxy_restconf_port: "8088"
opendaylight_haproxy_restconf_port_backup: "8183"
opendaylight_jetty_conf_port: "8543"
opendaylight_jetty_conf2_port: "8443"
opendaylight_tomcat_port: "8282"
opendaylight_tomcat_redirect_port: "8663"
opendaylight_karaf_ssh_port: "8101"
opendaylight_openflow_port: "6653"
opendaylight_ovsdb_port: "6641"
opendaylight_haproxy_ovsdb_port: "6642"
public_protocol: "{{ 'https' if kolla_enable_tls_external | bool else 'http' }}" public_protocol: "{{ 'https' if kolla_enable_tls_external | bool else 'http' }}"
internal_protocol: "http" internal_protocol: "http"
...@@ -375,6 +388,7 @@ enable_neutron_provider_networks: "no" ...@@ -375,6 +388,7 @@ enable_neutron_provider_networks: "no"
enable_neutron_sfc: "no" enable_neutron_sfc: "no"
enable_nova_serialconsole_proxy: "no" enable_nova_serialconsole_proxy: "no"
enable_octavia: "no" enable_octavia: "no"
enable_opendaylight: "no"
enable_openvswitch: "{{ neutron_plugin_agent != 'linuxbridge' | bool }}" enable_openvswitch: "{{ neutron_plugin_agent != 'linuxbridge' | bool }}"
enable_osprofiler: "no" enable_osprofiler: "no"
enable_panko: "no" enable_panko: "no"
...@@ -530,7 +544,7 @@ neutron_type_drivers: "flat,vlan,vxlan" ...@@ -530,7 +544,7 @@ neutron_type_drivers: "flat,vlan,vxlan"
# NOTE: for ironic this list should also contain 'flat' # NOTE: for ironic this list should also contain 'flat'
neutron_tenant_network_types: "vxlan" neutron_tenant_network_types: "vxlan"
computes_need_external_bridge: "{{ enable_neutron_dvr | bool or enable_neutron_provider_networks | bool and neutron_plugin_agent != 'vmware_dvs' }}" computes_need_external_bridge: "{{ enable_neutron_dvr | bool or enable_neutron_provider_networks | bool or enable_opendaylight | bool and neutron_plugin_agent != 'vmware_dvs' }}"
####################### #######################
# Nova options # Nova options
...@@ -612,3 +626,17 @@ vmware_vcenter_host_ip: ...@@ -612,3 +626,17 @@ vmware_vcenter_host_ip:
vmware_vcenter_host_username: vmware_vcenter_host_username:
vmware_vcenter_host_password: vmware_vcenter_host_password:
vmware_vcenter_cluster_name: vmware_vcenter_cluster_name:
######################
# OpenDaylight
######################
opendaylight_release: "0.6.1-Carbon"
opendaylight_mechanism_driver: "opendaylight_v2"
opendaylight_l3_service_plugin: "odl-router_v2"
opendaylight_acl_impl: "learn"
enable_opendaylight_qos: "no"
enable_opendaylight_l3: "{{ enable_opendaylight }}"
enable_opendaylight_legacy_netvirt_conntrack: "no"
opendaylight_port_binding_type: "pseudo-agentdb-binding"
opendaylight_features: "odl-mdsal-apidocs,odl-netvirt-openstack"
opendaylight_allowed_network_types: '"flat", "vlan", "vxlan"'
...@@ -103,6 +103,9 @@ network ...@@ -103,6 +103,9 @@ network
compute compute
manila-share manila-share
[opendaylight:children]
network
[cinder:children] [cinder:children]
control control
......
...@@ -124,6 +124,9 @@ network ...@@ -124,6 +124,9 @@ network
compute compute
manila-share manila-share
[opendaylight:children]
network
[cinder:children] [cinder:children]
control control
......
...@@ -873,3 +873,30 @@ listen mariadb ...@@ -873,3 +873,30 @@ listen mariadb
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if enable_opendaylight | bool %}
listen opendaylight_api
bind {{ kolla_internal_vip_address }}:{{ opendaylight_haproxy_restconf_port }}
balance source
{% for host in groups['opendaylight'] %}
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ opendaylight_restconf_port }} check fall 5 inter 2000 rise 2
{% endfor %}
listen opendaylight_api_backup
bind {{ kolla_internal_vip_address }}:{{ opendaylight_haproxy_restconf_port_backup }}
balance source
{% for host in groups['opendaylight'] %}
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ opendaylight_restconf_port_backup }} check fall 5 inter 2000 rise 2
{% endfor %}
listen opendaylight_ovsdb
mode tcp
timeout client 3600s
timeout server 3600s
option tcplog
option tcpka
bind {{ kolla_internal_vip_address }}:{{ opendaylight_haproxy_ovsdb_port }}
{% for host in groups['opendaylight'] %}
server {{ hostvars[host]['ansible_hostname'] }} {{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }}:{{ opendaylight_ovsdb_port }} check inter 2000 rise 2 fall 5 {% if not loop.first %}backup{% endif %}
{% endfor %}
{% endif %}
...@@ -81,7 +81,7 @@ neutron_services: ...@@ -81,7 +81,7 @@ neutron_services:
container_name: "neutron_l3_agent" container_name: "neutron_l3_agent"
image: "{{ neutron_l3_agent_image_full }}" image: "{{ neutron_l3_agent_image_full }}"
privileged: True privileged: True
enabled: "{{ not enable_neutron_vpnaas | bool and neutron_plugin_agent not in ['vmware_nsxv', 'vmware_dvs'] }}" enabled: "{{ not enable_neutron_vpnaas | bool and neutron_plugin_agent not in ['vmware_nsxv', 'vmware_dvs'] and not enable_opendaylight_l3 | bool }}"
host_in_groups: >- host_in_groups: >-
{{ {{
inventory_hostname in groups['neutron-l3-agent'] inventory_hostname in groups['neutron-l3-agent']
...@@ -90,6 +90,7 @@ neutron_services: ...@@ -90,6 +90,7 @@ neutron_services:
volumes: volumes:
- "{{ node_config_directory }}/neutron-l3-agent/:{{ container_config_directory }}/:ro" - "{{ node_config_directory }}/neutron-l3-agent/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro" - "/etc/localtime:/etc/localtime:ro"
- "/lib/modules:/lib/modules:ro"
- "/run:/run:shared" - "/run:/run:shared"
- "neutron_metadata_socket:/var/lib/neutron/kolla/" - "neutron_metadata_socket:/var/lib/neutron/kolla/"
- "kolla_logs:/var/log/kolla/" - "kolla_logs:/var/log/kolla/"
...@@ -186,7 +187,7 @@ neutron_openvswitch_agent_image: "{{ docker_registry ~ '/' if docker_registry el ...@@ -186,7 +187,7 @@ neutron_openvswitch_agent_image: "{{ docker_registry ~ '/' if docker_registry el
neutron_openvswitch_agent_tag: "{{ neutron_tag }}" neutron_openvswitch_agent_tag: "{{ neutron_tag }}"
neutron_openvswitch_agent_image_full: "{{ neutron_openvswitch_agent_image }}:{{ neutron_openvswitch_agent_tag }}" neutron_openvswitch_agent_image_full: "{{ neutron_openvswitch_agent_image }}:{{ neutron_openvswitch_agent_tag }}"
neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-server" neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-server{{ '-opendaylight' if enable_opendaylight | bool else '' }}"
neutron_server_tag: "{{ neutron_tag }}" neutron_server_tag: "{{ neutron_tag }}"
neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}" neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}"
...@@ -218,7 +219,7 @@ openstack_neutron_auth: "{{ openstack_auth }}" ...@@ -218,7 +219,7 @@ openstack_neutron_auth: "{{ openstack_auth }}"
#################### ####################
extension_drivers: extension_drivers:
- name: "qos" - name: "qos"
enabled: "{{ enable_neutron_qos | bool }}" enabled: "{{ enable_neutron_qos | bool or enable_opendaylight_qos | bool }}"
- name: "port_security" - name: "port_security"
enabled: true enabled: true
- name: "dns" - name: "dns"
...@@ -241,13 +242,15 @@ service_plugins: ...@@ -241,13 +242,15 @@ service_plugins:
- name: "vpnaas" - name: "vpnaas"
enabled: "{{ enable_neutron_vpnaas | bool }}" enabled: "{{ enable_neutron_vpnaas | bool }}"
- name: "qos" - name: "qos"
enabled: "{{ enable_neutron_qos | bool }}" enabled: "{{ enable_neutron_qos | bool or enable_opendaylight_qos | bool}}"
- name: "router" - name: "router"
enabled: true enabled: "{{ not enable_opendaylight_l3 | bool }}"
- name: "sfc" - name: "sfc"
enabled: "{{ enable_neutron_sfc | bool }}" enabled: "{{ enable_neutron_sfc | bool }}"
- name: "neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin" - name: "neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin"
enabled: "{{ enable_neutron_bgp_dragent | bool }}" enabled: "{{ enable_neutron_bgp_dragent | bool }}"
- name: "{{ opendaylight_l3_service_plugin }}"
enabled: "{{ enable_opendaylight_l3 | bool and enable_opendaylight | bool }}"
neutron_service_plugins: "{{ service_plugins|selectattr('enabled', 'equalto', true)|list }}" neutron_service_plugins: "{{ service_plugins|selectattr('enabled', 'equalto', true)|list }}"
...@@ -302,3 +305,12 @@ vmware_dvs_host_password: "password" ...@@ -302,3 +305,12 @@ vmware_dvs_host_password: "password"
vmware_dvs_insecure: "True" vmware_dvs_insecure: "True"
vmware_dvs_dvs_name: "VDS-1" vmware_dvs_dvs_name: "VDS-1"
vmware_dvs_dhcp_override_mac: "" vmware_dvs_dhcp_override_mac: ""
######################
# Notification Drivers
######################
notification_drivers:
- name: "odl-qos-v2"
enabled: "{{ enable_opendaylight_qos | bool }}"
neutron_notification_drivers: "{{ notification_drivers|selectattr('enabled', 'equalto', true)|list }}"
...@@ -16,6 +16,10 @@ dhcp_override_mac = {{ vmware_dvs_dhcp_override_mac }} ...@@ -16,6 +16,10 @@ dhcp_override_mac = {{ vmware_dvs_dhcp_override_mac }}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if enable_opendaylight | bool %}
interface_driver = openvswitch
{% endif %}
[ovs] [ovs]
ovsdb_interface = native ovsdb_interface = native
ovsdb_connection = tcp:{{ api_interface_address }}:6640 ovsdb_connection = tcp:{{ api_interface_address }}:6640
...@@ -12,6 +12,8 @@ mechanism_drivers = openvswitch,l2population ...@@ -12,6 +12,8 @@ mechanism_drivers = openvswitch,l2population
{% endif %} {% endif %}
{% elif neutron_plugin_agent == "linuxbridge" %} {% elif neutron_plugin_agent == "linuxbridge" %}
mechanism_drivers = linuxbridge,l2population mechanism_drivers = linuxbridge,l2population
{% elif neutron_plugin_agent == "opendaylight" %}
mechanism_drivers = {{ opendaylight_mechanism_driver }}
{% endif %} {% endif %}
{% if neutron_extension_drivers %} {% if neutron_extension_drivers %}
...@@ -20,6 +22,14 @@ extension_drivers = {{ neutron_extension_drivers|map(attribute='name')|join(',') ...@@ -20,6 +22,14 @@ extension_drivers = {{ neutron_extension_drivers|map(attribute='name')|join(',')
extension_drivers = port_security extension_drivers = port_security
{% endif %} {% endif %}
{% if enable_opendaylight | bool %}
[ml2_odl]
url = {{ internal_protocol }}://{{ kolla_internal_vip_address }}:{{ opendaylight_haproxy_restconf_port }}/controller/nb/v2/neutron
username = admin
password = {{ opendaylight_password }}
port_binding_controller = {{ opendaylight_port_binding_type }}
{% endif %}
[ml2_type_vlan] [ml2_type_vlan]
{% if enable_ironic | bool %} {% if enable_ironic | bool %}
network_vlan_ranges = physnet1 network_vlan_ranges = physnet1
...@@ -41,13 +51,13 @@ vxlan_group = 239.1.1.1 ...@@ -41,13 +51,13 @@ vxlan_group = 239.1.1.1
{% endif %} {% endif %}
[securitygroup] [securitygroup]
{% if neutron_plugin_agent == "openvswitch" %} {% if neutron_plugin_agent == "openvswitch" or neutron_plugin_agent == "opendaylight" %}
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
{% elif neutron_plugin_agent == "linuxbridge" %} {% elif neutron_plugin_agent == "linuxbridge" %}
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
{% endif %} {% endif %}
{% if neutron_plugin_agent == "openvswitch" %} {% if neutron_plugin_agent == "openvswitch" or neutron_plugin_agent == "opendaylight" %}
{% if not enable_hyperv | bool %} {% if not enable_hyperv | bool %}
[agent] [agent]
tunnel_types = vxlan tunnel_types = vxlan
......
{ {
"command": "neutron-server --config-file /etc/neutron/neutron.conf {% if neutron_plugin_agent in ['openvswitch', 'linuxbridge'] %} --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_lbaas.conf --config-file /etc/neutron/neutron_vpnaas.conf {% elif neutron_plugin_agent in ['vmware_nsx', 'vmware_dvs'] %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %} --config-file /etc/neutron/fwaas_driver.ini", "command": "neutron-server --config-file /etc/neutron/neutron.conf {% if neutron_plugin_agent in ['openvswitch', 'linuxbridge', 'opendaylight'] %} --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_lbaas.conf --config-file /etc/neutron/neutron_vpnaas.conf {% elif neutron_plugin_agent in ['vmware_nsx', 'vmware_dvs'] %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %} --config-file /etc/neutron/fwaas_driver.ini",
"config_files": [ "config_files": [
{ {
"source": "{{ container_config_directory }}/neutron.conf", "source": "{{ container_config_directory }}/neutron.conf",
......
...@@ -24,7 +24,7 @@ rpc_state_report_workers = {{ openstack_service_rpc_workers }} ...@@ -24,7 +24,7 @@ rpc_state_report_workers = {{ openstack_service_rpc_workers }}
# in it is because we are sharing this socket in a volume which is it's own dir # in it is because we are sharing this socket in a volume which is it's own dir
metadata_proxy_socket = /var/lib/neutron/kolla/metadata_proxy metadata_proxy_socket = /var/lib/neutron/kolla/metadata_proxy
{% if neutron_plugin_agent == "openvswitch" %} {% if neutron_plugin_agent == "openvswitch" or neutron_plugin_agent == "opendaylight" %}
interface_driver = openvswitch interface_driver = openvswitch
{% elif neutron_plugin_agent == "linuxbridge" %} {% elif neutron_plugin_agent == "linuxbridge" %}
interface_driver = linuxbridge interface_driver = linuxbridge
...@@ -145,3 +145,8 @@ hmac_keys = {{ osprofiler_secret }} ...@@ -145,3 +145,8 @@ hmac_keys = {{ osprofiler_secret }}
connection_string = elasticsearch://{{ elasticsearch_address }}:{{ elasticsearch_port }} connection_string = elasticsearch://{{ elasticsearch_address }}:{{ elasticsearch_port }}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if enable_opendaylight_qos | bool %}
[qos]
notification_drivers = {{ neutron_notification_drivers|map(attribute='name')|join(',') }}
{% endif %}
---
project_name: "opendaylight"
opendaylight_services:
opendaylight:
container_name: "opendaylight"
image: "{{ opendaylight_image_full }}"
enabled: True
privileged: True
group: "opendaylight"
host_in_groups: "{{ inventory_hostname in groups['opendaylight'] }}"
volumes:
- "{{ node_config_directory }}/opendaylight/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
####################
# Docker
####################
opendaylight_install_type: "{{ kolla_install_type }}"
opendaylight_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ opendaylight_install_type }}-opendaylight"
opendaylight_tag: "{{ openstack_release }}"
opendaylight_image_full: "{{ opendaylight_image }}:{{ opendaylight_tag }}"
---
- name: Restart opendaylight container
vars:
service_name: "opendaylight"
service: "{{ opendaylight_services[service_name] }}"
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
volumes: "{{ service.volumes }}"
privileged: "{{ service.privileged | default(False) }}"
when:
- action != "config"
- service.enabled | bool
- service.host_in_groups | bool
- opendaylight_config_json | changed
or opendaylight_config_start_odl | changed
or opendaylight_config_custom_props | changed
or opendaylight_config_jetty | changed
or opendaylight_config_features | changed
or opendaylight_config_ovsdb | changed
or opendaylight_config_tomcat | changed
or opendaylight_config_logging | changed
or opendaylight_config_netvirt | changed
or opendaylight_config_netvirt_acl | changed
or opendaylight_config_env | changed
or opendaylight_config_akka | changed
or opendaylight_config_modules | changed
or opendaylight_config_module_shards | changed
or check_opendaylight_containers | changed
---
dependencies:
- { role: common }
---
---
- name: Setting sysctl values
sysctl: name={{ item.name }} value={{ item.value }} sysctl_set=yes
with_items:
- { name: "net.bridge.bridge-nf-call-iptables", value: 1}
- { name: "net.bridge.bridge-nf-call-ip6tables", value: 1}
- { name: "net.ipv4.conf.all.rp_filter", value: 0}
- { name: "net.ipv4.conf.default.rp_filter", value: 0}
when:
- set_sysctl | bool
- inventory_hostname in groups['opendaylight']
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item }}"
state: "directory"
recurse: yes
with_items:
- "opendaylight"
- name: Copying over config.json files for services
register: opendaylight_config_json
template:
src: "{{ item }}.json.j2"
dest: "{{ node_config_directory }}/{{ item }}/config.json"
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over custom.properties
register: opendaylight_config_custom_props
template:
src: "{{ role_path }}/templates/custom.properties.j2"
dest: "{{ node_config_directory }}/opendaylight/custom.properties"
notify:
- Restart opendaylight container
- name: Copying over start-odl
register: opendaylight_config_start_odl
template:
src: "{{ role_path }}/templates/start-odl.j2"
dest: "{{ node_config_directory }}/opendaylight/start-odl"
notify:
- Restart opendaylight container
- name: Copying over jetty.xml
register: opendaylight_config_jetty
template:
src: "{{ role_path }}/templates/jetty.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/jetty.xml"
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over org.apache.karaf.features.cfg
register: opendaylight_config_features
template:
src: "{{ role_path }}/templates/org.apache.karaf.features.cfg.j2"
dest: "{{ node_config_directory }}/{{ item }}/org.apache.karaf.features.cfg"
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over org.opendaylight.ovsdb.library.cfg
register: opendaylight_config_ovsdb
template:
src: "{{ role_path }}/templates/org.opendaylight.ovsdb.library.cfg.j2"
dest: "{{ node_config_directory }}/{{ item }}/org.opendaylight.ovsdb.library.cfg"
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over tomcat-server.xml
template:
src: "{{ role_path }}/templates/tomcat-server.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/tomcat-server.xml"
register: opendaylight_config_tomcat
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over org.ops4j.pax.logging.cfg.j2
template:
src: "{{ role_path }}/templates/org.ops4j.pax.logging.cfg.j2"
dest: "{{ node_config_directory }}/{{ item }}/org.ops4j.pax.logging.cfg"
register: opendaylight_config_logging
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over netvirt-impl-config_netvirt-impl-config.xml
template:
src: "{{ role_path }}/templates/netvirt-impl-config_netvirt-impl-config.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/netvirt-impl-config_netvirt-impl-config.xml"
register: opendaylight_config_netvirt
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over netvirt-aclservice-config.xml
template:
src: "{{ role_path }}/templates/netvirt-aclservice-config.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/netvirt-aclservice-config.xml"
register: opendaylight_config_netvirt_acl
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over setenv
template:
src: "{{ role_path }}/templates/setenv.j2"
dest: "{{ node_config_directory }}/{{ item }}/setenv"
register: opendaylight_config_env
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over akka.conf
template:
src: "{{ role_path }}/templates/akka.conf.j2"
dest: "{{ node_config_directory }}/opendaylight/akka.conf"
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/akka.conf"
- "{{ node_custom_config }}/opendaylight/akka.conf"
- "akka.conf.j2"
register: opendaylight_config_akka
notify:
- Restart opendaylight container
- name: Copying over modules.conf
template:
src: "{{ role_path }}/templates/modules.conf.j2"
dest: "{{ node_config_directory }}/opendaylight/modules.conf"
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/modules.conf"
- "{{ node_custom_config }}/opendaylight/modules.conf"
- "modules.conf.j2"
register: opendaylight_config_modules
notify:
- Restart opendaylight container
- name: Copying over module-shards.conf
template:
src: "{{ role_path }}/templates/module-shards.conf.j2"
dest: "{{ node_config_directory }}/opendaylight/module-shards.conf"
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/module-shards.conf"
- "{{ node_custom_config }}/opendaylight/module-shards.conf"
- "module-shards.conf.j2"
register: opendaylight_config_module_shards
notify:
- Restart opendaylight container
- name: Check opendaylight containers
kolla_docker:
action: "compare_container"
common_options: "{{ docker_common_options }}"
name: "{{ item.value.container_name }}"
image: "{{ item.value.image }}"
privileged: "{{ item.value.privileged | default(False) }}"
volumes: "{{ item.value.volumes }}"
register: check_opendaylight_containers
when:
- action != "config"
- item.value.enabled | bool
- item.value.host_in_groups | bool
with_dict: "{{ opendaylight_services }}"
notify:
- "Restart {{ item.key }} container"
---
- include: config.yml
- name: Flush Handlers
meta: flush_handlers
---
- include: "{{ action }}.yml"
---
- name: Get container facts
kolla_container_facts:
name:
- opendaylight
register: container_facts
- name: Checking free port for opendaylight_clustering
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_clustering_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_restconf
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_restconf_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_restconf_backup
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_restconf_port_backup }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_karaf_ssh
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_karaf_ssh_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_openflow
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_openflow_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_ovsdb
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_ovsdb_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_jetty_conf_port
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_jetty_conf_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_jetty_conf2_port
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_jetty_conf2_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_tomcat_port
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_tomcat_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_tomcat_redirect_port
wait_for:
host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
port: "{{ opendaylight_tomcat_redirect_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking available opendaylight nodes in inventory
fail:
msg: "Either 1 or 3 nodes required in inventory for OpenDaylight clustering"
when: groups['opendaylight'] | length == 2
---
- name: Pulling opendaylight image
kolla_docker:
action: "pull_image"
common_options: "{{ docker_common_options }}"
image: "{{ item.value.image }}"
when:
- item.value.enabled | bool
- item.value.host_in_groups | bool
with_dict: "{{ opendaylight_services }}"
---
- include: deploy.yml
---
- include: config.yml
- name: Flush Handlers
meta: flush_handlers
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment