83 lines
2.5 KiB
YAML
83 lines
2.5 KiB
YAML
---
|
|
# Copyright 2021 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.
|
|
|
|
- name: create directory {{ tripleo_frr_config_basedir }}
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: "{{ tripleo_frr_config_basedir }}/etc/frr"
|
|
recurse: true
|
|
state: directory
|
|
selevel: s0
|
|
setype: container_file_t
|
|
|
|
- name: identify the real interfaces via os-net-config
|
|
shell: os-net-config -i
|
|
register: os_net_config_result
|
|
|
|
- name: os-net-config from json
|
|
set_fact:
|
|
iface_map: "{{ os_net_config_result.stdout }}"
|
|
|
|
- name: FRR uplink interfaces
|
|
block:
|
|
- name: construct FRR uplink interfaces from os-net-config mappings
|
|
set_fact:
|
|
tripleo_frr_bgp_uplinks_mapped: "{{ tripleo_frr_bgp_uplinks | map('extract', iface_map) | list }}"
|
|
rescue:
|
|
- name: failed to construct FRR uplink interfaces
|
|
ansible.builtin.fail:
|
|
msg: |
|
|
Failed to map at least one interface from {{ tripleo_frr_bgp_uplinks }} to {{ iface_map }}.
|
|
Please check value of Ansible variable tripleo_frr_bgp_uplinks.
|
|
|
|
- name: configure FRR
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: frr.conf.j2
|
|
dest: "{{ tripleo_frr_config_basedir }}/etc/frr/frr.conf"
|
|
mode: '640'
|
|
selevel: s0
|
|
setype: container_file_t
|
|
register: _frr_config_result
|
|
|
|
- name: configure FRR daemons
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: daemons.j2
|
|
dest: "{{ tripleo_frr_config_basedir }}/etc/frr/daemons"
|
|
mode: '640'
|
|
selevel: s0
|
|
setype: container_file_t
|
|
register: _frr_daemons_result
|
|
|
|
- name: restart FRR
|
|
when:
|
|
- _frr_config_result.changed or _frr_daemons_result.changed
|
|
block:
|
|
- name: check if tripleo_frr systemd service is active
|
|
become: true
|
|
shell: systemctl is-active --quiet tripleo_frr
|
|
failed_when: false
|
|
register: frr_active_service
|
|
|
|
- name: restart frr container
|
|
become: true
|
|
systemd:
|
|
name: tripleo_frr
|
|
state: restarted
|
|
when:
|
|
- frr_active_service.rc == 0
|