openstack-ansible-ops/skydive/roles/skydive_common/vars/main.yml

63 lines
2.9 KiB
YAML

---
# Copyright 2019, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Dynamic construction of the system fabric for all hosts within the agents group
skydive_fabric: |-
{% set fabric = [] %}
{% set nodes = [] %}
{% for node in groups['skydive_analyzers'] %}
{% if node in ansible_play_hosts %}
{% set agents_loop = loop %}
{% for interface in (hostvars[node]['ansible_interfaces'] | map('replace', '-','_') | list) %}
{% if interface != 'lo' %}
{% set ansible_interface_name = "ansible_" ~ interface %}
{% set port_entry = "TOR[Name=TOR] -> TOR_PORT" ~ agents_loop.index ~ "[Name=port" ~ agents_loop.index ~ "]" %}
{% if hostvars[node][ansible_interface_name] is defined %}
{% set interface_data = hostvars[node][ansible_interface_name] %}
{% if interface_data['mtu'] is defined %}
{% set port_entry = "TOR[Name=TOR] -> [color=red] TOR_PORT" ~ agents_loop.index ~ "[Name=port" ~ agents_loop.index ~ ",MTU=" ~ interface_data['mtu'] ~ "]" %}
{% endif %}
{% endif %}
{% set _ = fabric.append((port_entry)) %}
{% if not interface in nodes %}
{% set host_entry = "TOR_PORT" ~ agents_loop.index ~ "-> *[Type=host,Name=" ~ hostvars[node]['ansible_hostname'] ~ "/" ~ interface %}
{% set _ = fabric.append((host_entry)) %}
{% endif %}
{% set _ = nodes.append(interface) %}
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{{ fabric }}
# Inject the required basic authentication information
_skydive_basic_auth_users:
"{{ skydive_username }}": "{{ skydive_password }}"
skydive_ssl_cnf: "/var/lib/skydive/ssl/skydive-openssl.cnf"
skydive_ssl_key: "/var/lib/skydive/ssl/skydive.key"
skydive_ssl_csr: "/var/lib/skydive/ssl/skydive.csr"
skydive_ssl_cert: "/var/lib/skydive/ssl/skydive-{{ inventory_hostname | replace('_', '-') | replace(' ', '-') }}.crt"
skydive_ssl_signed_subject: "/C=XX/L=OpenStack-Cloud/O=OpenStack/OU=IT/CN={{ ((ansible_fqdn | length) > 0) | ternary(ansible_fqdn, ansible_hostname) }}"
skydive_ssl_ca_key: "/var/lib/skydive/ssl/skydive-ca.key"
skydive_ssl_ca_cert: "/var/lib/skydive/ssl/skydive-ca.crt"
skydive_ssl_ca_subject: "/C=XX/L=OpenStack-Cloud/O=OpenStack"
skydive_ssl_bundle:
- path: "{{ skydive_ssl_csr }}"
- path: "{{ skydive_ssl_cert }}"
- path: "{{ skydive_ssl_key }}"
- path: "{{ skydive_ssl_ca_cert }}"