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