如果有人能提出一个自我教育的资源,将是非常感激的。目前,我正在根据什么是有效的例子来学习。如果术语不正确,很抱歉
我有两个json格式的结果(字典?)从发送到Netscaler的命令中:
Result1列出证书信息:
{
"errorcode": 0,
"message": "Done",
"severity": "NONE",
"sslcertkey": [
{
"certkey": "certkey1.pair",
"daystoexpiration": 0,
"status": "Expired",
"subject": "easdm.test.com"
},
{
"certkey": "certkey2.pair",
"daystoexpiration": 0,
"status": "Expired",
"subject": " CN=timer.test.com"
},Result2列出了哪个证书绑定到虚拟服务器:
{
"errorcode": 0,
"message": "Done",
"severity": "NONE",
"sslcertkey_sslvserver_binding": [
{
"certkey": "certkey1.pair",
"data": "1",
"servername": "easdm_gslb_btfin_pri_lb_vs",
"stateflag": "2",
"version": 1
},
{
"certkey": "certkey2.pair",
"data": "2",
"servername": "timer_gslb_btfin_pri_lb_vs",
"stateflag": "2",
"version": 1
},我希望将两个结果组合到Result3中,这样如果"certkey“在结果之间匹配,它就会将来自Result1的信息与Result2组合起来:
{
"certkey": "certkey1.pair",
"daystoexpiration": 0,
"status": "Expired",
"subject": "easdm.test.com",
"servername": "easdm_gslb_btfin_pri_lb_vs"
},
{
"certkey": "certkey2.pair",
"daystoexpiration": 0,
"status": "Expired",
"subject": " CN=timer.test.com",
"servername": "timer_gslb_btfin_pri_lb_vs"
},每个结果中有100个条目,Result1中的一些结果在Result2中不匹配,因为在任何地方都不使用cert。我试着用一个简单的
- debug:
msg: '{{ result.json.sslcertkey | combine(result2.json.sslcertkey_sslvserver_binding, recursive=True) }}'但它似乎只显示了最后一场比赛,而不是所有的比赛。
发布于 2022-02-14 11:11:41
使用过滤器合并
result3: "{{ result1.sslcertkey|
community.general.lists_mergeby(result2.sslcertkey_sslvserver_binding,
'certkey') }}"给出
result3:
- certkey: certkey1.pair
data: '1'
daystoexpiration: 0
servername: easdm_gslb_btfin_pri_lb_vs
stateflag: '2'
status: Expired
subject: easdm.test.com
version: 1
- certkey: certkey2.pair
data: '2'
daystoexpiration: 0
servername: timer_gslb_btfin_pri_lb_vs
stateflag: '2'
status: Expired
subject: ' CN=timer.test.com'
version: 1https://stackoverflow.com/questions/71109881
复制相似问题