【发布时间】:2018-12-04 08:43:46
【问题描述】:
register: dnsfact
- debug: var=dnsfact.ansible_facts.azure_dnszones[0].name
如果我像上面那样调试,我会得到以下输出:
ok: [openshift-infra01.example.net] => {
"dnsfact.ansible_facts.azure_dnszones[0].name": "226********"
debug: var=dnsfact.ansible_facts.azure_dnszones[1].name> 这会给我两个值。debug: var=dnsfact.ansible_facts.azure_dnszones[2].name> 这会给我三个值。
如果我想打印所有的值,我需要传递哪个值?我试过dnszones[:] 和dnszones[':']。但我无法获取值。
请在下面找到实际输出。
"dnsfact.ansible_facts.azure_dnszones": [
{
"etag": "00000002-0000-0000-9ed1-be810a8bd401",
"id": "/subscription*****/dnszones/226.10.in-addr.arpa",
"location": "global",
"name": "226.10.in-addr.arpa",
我们试图从这个输出中过滤“名称”。
【问题讨论】:
-
@nwinkler 输出如下。 “dnsfact.ansible_facts.azure_dnszones”:[{“etag”:“00000002-0000-0000-9ed1-be810a8bd401”,“id”:“/subscriptions/********/resourceGroups/exp1/providers/Microsoft .Network/dnszones/226.10.in-addr.arpa", "location": "global", "name": "226.10.i*******",
-
在问题本身中添加。 @nwinkler
-
您在问题中添加的数据不完整 - 对象未关闭,数组中只有一项不完整。
azure_dnszones[2]之类的东西不适用于上述数据。 -
我想说的是,如果我给 - debug: var=dnsfact.ansible_facts.azure_dnszones[0].name,这只是过滤一个值。在我的环境中,我有很多子集。在每个子集中,我必须过滤名称的值。 @nwinkler
-
请提供一个例子——没有完整的例子很难回答你的问题。
标签: shell azure scripting ansible coding-style