stonith_exists¶
Role Documentation¶
Welcome to the “stonith_exists” role documentation.
Role Variables: main.yml¶
metadata:
description: 'Verify that stonith devices are configured for your OpenStack Platform
HA cluster. We don''t configure stonith device with TripleO Installer. Because
the hardware configuration may be differ in each environment and requires different
fence agents. How to configure fencing please read https://access.redhat.com/documentation/en/red-hat-openstack-platform/8/paged/director-installation-and-usage/86-fencing-the-controller-nodes
'
groups:
- post-deployment
name: Validate stonith devices
Molecule Scenarios¶
Molecule is being used to test the “stonith_exists” role. The following section highlights the drivers in service and provides an example playbook showing how the role is leveraged.
Scenario: default¶
Example default configuration¶
driver:
name: podman
log: true
platforms:
- dockerfile: ../../../../.config/molecule/Dockerfile
environment:
http_proxy: '{{ lookup(''env'', ''http_proxy'') }}'
https_proxy: '{{ lookup(''env'', ''https_proxy'') }}'
hostname: centos
image: centos/centos:stream8
name: centos
pkg_extras: python*-setuptools python*-pyyaml
privileged: true
registry:
url: quay.io
ulimits:
- host
volumes:
- /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro
provisioner:
env:
ANSIBLE_LIBRARY: ${ANSIBLE_LIBRARY:-/usr/share/ansible/plugins/modules}
ANSIBLE_ROLES_PATH: ${ANSIBLE_ROLES_PATH}:${HOME}/zuul-jobs/roles
ANSIBLE_STDOUT_CALLBACK: yaml
inventory:
hosts:
all:
hosts:
centos:
ansible_python_interpreter: /usr/bin/python3
log: true
name: ansible
options:
vvv: true
scenario:
test_sequence:
- destroy
- create
- prepare
- converge
- verify
- destroy
verifier:
name: ansible
Molecule Inventory¶
hosts:
all:
hosts:
centos:
ansible_python_interpreter: /usr/bin/python3
Example default playbook¶
- hosts: all
name: Converge
tasks:
- include_role:
name: stonith_exists
name: Safe run
- block:
- copy:
content: '#!/bin/sh
echo "NO stonith devices configured"
exit 0
'
dest: /usr/bin/pcs
mode: 493
name: Faulty pcs script
- include_role:
name: stonith_exists
name: Run validation
name: Fail the validation
rescue:
- meta: clear_host_errors
name: Clear host errors
- debug:
msg: The validation works! End play
name: Test output
- meta: end_play
name: End play
- fail:
msg: 'The stonith_exists validation didn''t properly detect failed
stonith config
'
name: Fail playbook if reached