frr_status¶
Role Documentation¶
Welcome to the “frr_status” role documentation.
Role Defaults¶
This section highlights all of the defaults and variables set within the “frr_status” role.
# All variables intended for modification should be placed in this file.
enabled_services:
- frr
Role Variables: main.yml¶
metadata:
name: FRR status check
description: >
Runs 'show watchfrr' and checks for any non-operational daemon.
groups:
- post-deployment
- post-update
- pre-update
Molecule Scenarios¶
Molecule is being used to test the “frr_status” role. The following section highlights the drivers in service and provides an example playbook showing how the role is leveraged.
- Driver: podman:
- Driver: podman:
Scenario: default¶
Molecule Platform(s)¶
- name: centos
hostname: centos
image: centos/centos:stream8
registry:
url: quay.io
dockerfile: ../../../../.config/molecule/Dockerfile
pkg_extras: python*-setuptools python*-pyyaml
volumes:
- /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro
privileged: true
environment:
http_proxy: "{{ lookup('env', 'http_proxy') }}"
https_proxy: "{{ lookup('env', 'https_proxy') }}"
ulimits:
- host
Molecule Inventory¶
hosts:
all:
hosts:
centos:
ansible_python_interpreter: /usr/bin/python3
Example default playbook¶
- name: Converge
hosts: all
gather_facts: false
tasks:
- name: run validation
include_role:
name: frr_status
vars:
enabled_services:
- frr
Scenario: faulty¶
Molecule Platform(s)¶
- name: centos
hostname: centos
image: centos/centos:stream8
registry:
url: quay.io
dockerfile: ../../../../.config/molecule/Dockerfile
pkg_extras: python*-setuptools python*-pyyaml
volumes:
- /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro
privileged: true
environment:
http_proxy: "{{ lookup('env', 'http_proxy') }}"
https_proxy: "{{ lookup('env', 'https_proxy') }}"
ulimits:
- host
Molecule Inventory¶
hosts:
all:
hosts:
centos:
ansible_python_interpreter: /usr/bin/python3
Example faulty playbook¶
- name: Converge
hosts: all
gather_facts: false
tasks:
- name: make validation fail
block:
- name: run validation
include_role:
name: frr_status
vars:
enabled_services:
- frr
rescue:
- name: Clear host errors
meta: clear_host_errors
- name: check at least one FRR daemon is down
assert:
that:
- has_errors is defined
- name: End play
meta: end_play
- name: Fail playbook if reached
fail:
msg: |
The frr_status validation didn't properly detect non-operational FRR
daemons!