Bonjour,
je cherche à surveiller l’état de santé d’un cluster mariadb galera avec un playbook ansible. Pour l’exemple, je m’intéresse à la variable wsrep_local_state_comment
, mais c’est anecdotique.
J’utilise le plugin communautaire mysql_query afin d’exécuter les requêtes me permettant de récupérer la valeur de cette variable.
Voici la tâche dans le playbook:
- name: "Vérification des états locaux Galera (wsrep_local_state_comment)"
community.mysql.mysql_query:
login_db: information_schema
login_user: root
login_unix_socket: /var/run/mysqld/mysqld.sock
query: select VARIABLE_VALUE from GLOBAL_STATUS where VARIABLE_NAME = 'wsrep_local_state_comment'
register: wsrep_local_state_comment
Et voici le contenu de la variable wsrep_local_state_comment:
debug:
msg: "local state comment: {{ wsrep_local_state_comment }}"
---
---
ok: [cc-galera1-dev] => {
"msg": "local state comment: {u'rowcount': [1], u'executed_queries': [u\"select VARIABLE_VALUE from GLOBAL_STATUS where VARIABLE_NAME = 'wsrep_local_state_comment'\"], u'changed': False, u'query_result': [[{u'VARIABLE_VALUE': u'Synced'}]], 'failed': False}"
}
Je souhaite accéder uniquement à la valeur de la colonne, c’est-à-dire à ‹ Synced ›, mais je n’y parviens pas (je ne connais pas bien python).
La documentation du module nous dit que query_result
retourne une liste de listes de dictionnaires de colonnes:valeurs (List of lists (sublist for each query) containing dictionaries in column:value form representing returned rows.), mais le mieux que j’ai pu faire de cette information, c’est ceci:
debug:
msg: "local state comment: {{ wsrep_local_state_comment.query_result[0] }}"
---
---
ok: [cc-galera1-dev] => {
"msg": "local state comment: [{u'VARIABLE_VALUE': u'Synced'}]"
}
tandis qu’idéalement, j’aimerais obtenir quelque chose comme ceci:
ok: [cc-galera1-dev] => {
"msg": "local state comment: 'Synced'"
}
J’espère que ce n’est pas trop « fouillis » comme description, je pense que mon problème est surtout que je ne sais pas bien accéder à des éléments imbriqués dans les objets python.