【发布时间】:2021-04-02 09:16:41
【问题描述】:
我正在尝试通过将cluster_status 命令输出到一个变量来验证rabbitmq 集群状态,然后查看输出是否包含该组的所有主机。如果缺少任何主机,则退出。
如何检查字符串 (command_output) 是否包含列表 (group_hosts) 中的所有值?
我的代码:
- name: check cluster status
command: rabbitmqctl cluster_status
register: cluster_status
changed_when: false
输出:
"stdout": "Cluster status of node rabbit@ip-127.0.0.1 ...\n[{nodes,[{disc,['rabbit@ip-127.0.0.1','rabbit@ip-127.0.0.2']}]},\n {running_nodes,['rabbit@ip-127.0.0.2','rabbit@ip-127.0.0.1']},\n {cluster_name,<<\"rabbit@ip-127.0.0.2.ec2.internal\">>},\n {partitions,[]},\n {alarms,[{'rabbit@ip-127.0.0.2',[]},{'rabbit@ip-127.0.0.1',[]}]}]",
"stdout_lines": [
"Cluster status of node rabbit@ip-127.0.0.1 ...",
"[{nodes,[{disc,['rabbit@ip-127.0.0.1','rabbit@ip-127.0.0.2']}]},",
" {running_nodes,['rabbit@ip-127.0.0.2','rabbit@ip-127.0.0.1']},",
" {cluster_name,<<\"rabbit@ip-127.0.0.2.ec2.internal\">>},",
" {partitions,[]},",
" {alarms,[{'rabbit@ip-127.0.0.2',[]},{'rabbit@ip-127.0.0.1',[]}]}]"
]
列出变量变量:
group_hosts=[ip-127.0.0.1,ip-127.0.0.2]
如何从 stdout 获取以下行到变量?
running_nodes,['rabbit@ip-127.0.0.2','rabbit@ip-127.0.0.1']
【问题讨论】:
-
向兔子询问 JSON " --formatter json"。
标签: ansible jinja2 ansible-2.x ansible-template