Tip
Check out the repository on GitHub
Status
STATE: unstable
TESTS: Playbook
Definition
Parameter |
Type |
Required |
Default |
Aliases |
Comment |
---|---|---|---|---|---|
detailed |
boolean |
false |
false |
detail |
Return a more detailed status parsed from XML output |
subset |
list |
false |
[‘cluster’, ‘nodes’, ‘resources’, ‘operations’] |
parse, sub |
Provide one or multiple status-subsets to parse (ignored if ‘detailed: true’ is set) |
time_format |
string |
false |
%Y-%m-%d %H:%M:%S’ |
t_fmt |
Modify the datetime format used to parse timestamps (ignored if ‘detailed: true’ is set) |
For basic parameters see: Basic
Info
Get parsed cluster-status.
If ‘detailed: false’ (default) is set - the output from ‘crm status full’ is parsed.
Else the output from ‘crm status xml’ is used.
The ‘detailed’ output might get updated in the future! (different modes to filter data and so on)
Examples
- hosts: node1
gather_facts: false
become: true
tasks:
- name: Example
ansibleguy.linuxha.status:
# subset: ['cluster', 'nodes', 'resources', 'operations']
# time_format: '%Y-%m-%d %H:%M:%S'
- name: Pulling status
ansibleguy.linuxha.status:
register: lha_status
- name: Showing status
ansible.builtin.debug:
var: lha_cnf.data
# {
# "cluster": {
# "changed_node": "node1",
# "changed_time": "2023-04-02 15:49:30"
# "changed_user": "root",
# "changed_via": "cibadmin",
# "dc": "node1",
# "node_count": 2,
# "resource_count": 7,
# "updated": "2023-04-02 19:29:41"
# "version": "2.0.5-ba59be7122"
# },
# "nodes": {
# "node1": {
# "resources": {
# "a2": {
# "resource": {
# "class": null,
# "provider": "systemd",
# "type": "apache2.service"
# },
# "state": "Started"
# },
# "ng": {
# "resource": {
# "class": null,
# "provider": "systemd",
# "type": "nginx.service"
# },
# "state": "Started"
# },
# "pingGW": {
# "resource": {
# "class": "ocf",
# "provider": "pacemaker",
# "type": "ping"
# },
# "state": "Started"
# },
# "test2": {
# "resource": {
# "class": "ocf",
# "provider": "heartbeat",
# "type": "IPaddr2"
# },
# "state": "Started"
# }
# },
# "status": "online"
# },
# "node2": {
# "resources": {
# "a2": {
# "resource": {
# "class": null,
# "provider": "systemd",
# "type": "apache2.service"
# },
# "state": "Started"
# },
# "pingGW": {
# "resource": {
# "class": "ocf",
# "provider": "pacemaker",
# "type": "ping"
# },
# "state": "Started"
# },
# "test1": {
# "resource": {
# "class": "ocf",
# "provider": "heartbeat",
# "type": "IPaddr2"
# },
# "state": "Started"
# }
# },
# "status": "online"
# }
# },
# "resources": {
# "a2": {
# "nodes": {
# "node1": "Started",
# "node2": "Started"
# },
# "resource": {
# "class": null,
# "provider": "systemd",
# "type": "apache2.service"
# }
# },
# "ng": {
# "nodes": {
# "node1": "Started"
# },
# "resource": {
# "class": null,
# "provider": "systemd",
# "type": "nginx.service"
# }
# },
# "pingGW": {
# "nodes": {
# "node1": "Started",
# "node2": "Started"
# },
# "resource": {
# "class": "ocf",
# "provider": "pacemaker",
# "type": "ping"
# }
# },
# "test1": {
# "nodes": {
# "node2": "Started"
# },
# "resource": {
# "class": "ocf",
# "provider": "heartbeat",
# "type": "IPaddr2"
# }
# },
# "test2": {
# "nodes": {
# "node1": "Started"
# },
# "resource": {
# "class": "ocf",
# "provider": "heartbeat",
# "type": "IPaddr2"
# }
# }
# },
# "operations": {
# "node1": {
# "a2": {
# "2023-04-02 15:44:50": {
# "change": "2023-04-02 15:44:50",
# "migration_threshold": "1000000",
# "operation": "probe",
# "operation_id": "128",
# "rc": "0",
# "status": "ok",
# "time_exec": "0ms",
# "time_queue": "0ms"
# }
# },
# "pingGW": {
# "2023-04-02 15:48:13": {
# "change": "2023-04-02 15:48:13",
# "migration_threshold": "1000000",
# "operation": "start",
# "operation_id": "143",
# "rc": "0",
# "status": "ok",
# "time_exec": "10102ms",
# "time_queue": "0ms"
# }
# },
# "test1": {
# "2023-04-02 15:33:44": {
# "change": "2023-04-02 15:33:44",
# "migration_threshold": "1000000",
# "operation": "stop",
# "operation_id": "112",
# "rc": "0",
# "status": "ok",
# "time_exec": "17ms",
# "time_queue": "0ms"
# }
# }
# },
# "node2": {
# "a2": {
# "2023-04-02 15:44:51": {
# "change": "2023-04-02 15:44:51",
# "migration_threshold": "1000000",
# "operation": "probe",
# "operation_id": "102",
# "rc": "0",
# "status": "ok",
# "time_exec": "0ms",
# "time_queue": "0ms"
# }
# }
# }
# }
# }
- name: Pulling detailed status
ansibleguy.linuxha.status:
detailed: true
register: lha_status_detailed
- name: Showing detailed status
ansible.builtin.debug:
var: lha_status_detailed.data
# {
# "node_history": {
# "node": {
# "name": "node1",
# "resource_history": {
# "id": "ANSIBLE_TEST_2_1",
# "migration-threshold": "1000000",
# "operation_history": {
# "call": "245",
# "exec-time": "21ms",
# "last-rc-change": "Sun Apr 2 20:59:51 2023",
# "last-run": "Sun Apr 2 20:59:51 2023",
# "queue-time": "0ms",
# "rc": "0",
# "rc_text": "ok",
# "task": "start"
# },
# "orphan": "false"
# }
# }
# },
# "nodes": {
# "node": [
# {
# "expected_up": "true",
# "id": "1",
# "is_dc": "true",
# "maintenance": "false",
# "name": "node1",
# "online": "true",
# "pending": "false",
# "resources_running": "1",
# "shutdown": "false",
# "standby": "false",
# "standby_onfail": "false",
# "type": "member",
# "unclean": "false"
# },
# {
# "expected_up": "true",
# "id": "2",
# "is_dc": "false",
# "maintenance": "false",
# "name": "node2",
# "online": "true",
# "pending": "false",
# "resources_running": "0",
# "shutdown": "false",
# "standby": "false",
# "standby_onfail": "false",
# "type": "member",
# "unclean": "false"
# }
# ]
# },
# "resources": {
# "resource": {
# "active": "true",
# "blocked": "false",
# "failed": "false",
# "failure_ignored": "false",
# "id": "ANSIBLE_TEST_2_1",
# "managed": "true",
# "node": {
# "cached": "true",
# "id": "1",
# "name": "node1"
# },
# "nodes_running_on": "1",
# "orphaned": "false",
# "resource_agent": "ocf::heartbeat:IPaddr2",
# "role": "Started"
# }
# },
# "summary": {
# "cluster_options": {
# "maintenance-mode": "false",
# "no-quorum-policy": "stop",
# "stonith-enabled": "false",
# "stop-all-resources": "false",
# "symmetric-cluster": "true"
# },
# "current_dc": {
# "id": "1",
# "name": "node1",
# "present": "true",
# "version": "2.0.5-ba59be7122",
# "with_quorum": "true"
# },
# "last_change": {
# "client": "cibadmin",
# "origin": "node1",
# "time": "Sun Apr 2 20:59:51 2023",
# "user": "root"
# },
# "last_update": {
# "time": "Sun Apr 2 20:59:55 2023"
# },
# "nodes_configured": {
# "number": "2"
# },
# "resources_configured": {
# "blocked": "0",
# "disabled": "0",
# "number": "1"
# },
# "stack": {
# "type": "corosync"
# }
# },
# "version": "2.0.5"
# }