所以我有点困在一个问题上 . 本质上,我想运行一个包含列表和字典的嵌套循环,我似乎无法弄清楚如何 .
我的用例是运行一个Playbook,它将通过使用主体列表对公钥进行签名来生成SSH证书 .
我有一个主机列表(名为bastionHosts的组)作为跳转主机 . 这些主机上有最终用户及其SSH密钥对 .
[bastionHosts]
10.100.0.10
10.100.0.11
我还有一个用户及其SSH主体的字典 . 字典看起来像这样:
users:
webuser01: "webservers-principal"
dbuser01: "dbservers-principal"
webadmin01: "webservers-principal"
我使用fetch模块下载公共密钥(每个用户使用“id_ecdsa.pub” . 这将创建一个如下所示的目录结构:“/ tmp / public_keys / <> / home / << username >> / . ssh / id_ecdsa的.pub
例如,在堡垒10.100.0.10上获取webuser01的公钥会将密钥放入ansible主机上的/tmp/public_keys/10.100.0.10/home/webuser01/.ssh/id_ecdsa.pub .
我的目标是递归到这个目录结构并使用适当的主体签署每个公钥,但我无法弄清楚如何做到这一点 .
如果我只获取一组文件并且它是一个平面提取(即不使用每个主机的目录结构),下面的代码将起作用 . item.key是用户名,item.value是主体集 .
- name: create signed certif