Ansible 无法在route53模块内访问ACME质询DNS数据

Ansible 无法在route53模块内访问ACME质询DNS数据,ansible,Ansible,我正试图通过ansible生成ssl证书。acme_证书模块用质询数据填充acme_数据。我想在我的DNS提供商Route53中更新这些挑战DNS记录 我使用Route53模块更新上面接收到的质询数据。acme_data.challenge_数据是一个数组,我可以通过调试对其进行验证。由于某些原因,route53无法将该记录解释为数组,并因未定义变量项而失败 fatal:[localhost]:失败!=>{ “味精”:"该任务包含一个带有未定义变量的选项。错误是:“item”未定义\n\n错误出

我正试图通过ansible生成ssl证书。acme_证书模块用质询数据填充acme_数据。我想在我的DNS提供商Route53中更新这些挑战DNS记录

我使用Route53模块更新上面接收到的质询数据。acme_data.challenge_数据是一个数组,我可以通过调试对其进行验证。由于某些原因,route53无法将该记录解释为数组,并因未定义变量项而失败

fatal:[localhost]:失败!=>{
“味精”:"该任务包含一个带有未定义变量的选项。错误是:“item”未定义\n\n错误出现在“/Users/SenG/Code/Yii2 Starter Kit Nginx Aws Setup/Aws/tasks/ssl-cert.yml”:第80行第3列,但可能\n位于文件的其他位置,具体取决于语法问题。\n\n出现问题的行是:\n\n\n-名称:Publish the对DNS的质询\n^此处\n“
}
-名称:创建证书存储目录
委托给:“{{remote\u host}”
变成:真的
成为用户:SenG
文件:
目标:{{item.path}}”
模式:0750
状态:目录
有以下项目:
-路径:~/letsencrypt
-路径:~/letsencrypt
-名称:创建临时目录
临时文件:
状态:目录
寄存器:tempdir
#-名称:拉键/文件
#命令:|
#/usr/bin/rsync——递归“{remote_host}}:~/letsencrypt”“{{tempdir.path}”
-名称:创建用于ansible帐户的RSA密钥
openssl_私钥:
路径:“{tempdir.path}}/letsencrypt_account.pem”
尺码:4096
类型:RSA
-名称:创建用于证书的RSA密钥
openssl_私钥:
路径:“{tempdir.path}}/{{cert_name}}.key”
尺码:4096
类型:RSA
-名称:报告证书值
调试:
var:cert
冗长:1
-名称:为证书创建CSR
openssl_csr:
路径:“{tempdir.path}}/{{cert_name}}.csr”
privatekey_路径:“{{tempdir.path}}/{{{cert_name}}.key”
国家名称:IN
州或省名称:TN
组织机构名称:“{{cert.organization_name}”
电子邮件地址:“{{cert.email_address}”
公共名称:“{{cert.common\u name}”
主题名称:{{cert.subject\u alt\u name}”
-名称:获取ACME挑战
acme_证书:
帐户\电子邮件:{{cert.email\地址}”
帐户密钥:“{tempdir.path}/letsencrypt\u account.pem”
acme_目录:“{{acme_目录}”
acme_版本:2
挑战:dns-01
chain_dest:“{{tempdir.path}}/intermediate.pem”
csr:{{tempdir.path}}/{{cert_name}}.csr”
dest:{{tempdir.path}}/{{cert_name}}.cert”
同意的条件:是
剩余天数:“{{剩余天数}”
寄存器:acme_数据
-调试:
变量:acme_数据
-名称:将质询发布到DNS
路线53:
区域:“{app_domain}}”
记录:“{item.key}}”
类型:TXT
ttl:60
#注意:item.value是TXT条目的列表,路由53
#要求每个条目都用引号括起来
值:“{item.value | map('regex_replace','^(.*)$','\“\\1\”)| list}”
访问密钥:{{aws\U访问密钥}”
密钥:{{aws\u secret\u key}”
使用命令“{acme_data.challenge_data_dns}”
何时:更改acme_数据
-name:请稍等,以便进行DNS复制
暂停:
秒:60
何时:更改acme_数据
-名称:获取证书
acme_证书:
帐户\电子邮件:{{cert.email\地址}”
帐户密钥:“{tempdir.path}/letsencrypt\u account.pem”
acme_目录:“{{acme_目录}”
acme_版本:2
挑战:dns-01
chain_dest:“{{tempdir.path}}/intermediate.pem”
csr:{{tempdir.path}}/{{cert_name}}.csr”
dest:{{tempdir.path}}/{{cert_name}}.cert”
同意的条件:是
剩余天数:“{{剩余天数}”
数据:“{acme_data}}”
何时:更改acme_数据
调试数据

“挑战数据\u dns”:{
“_acme-challenge.practice akash ajay.plts.in”:[
“knXBPNL3Rm-ASNAYL23AR84F9E72GYJMBIGHPAOGW4”
]
},

您的任务正在使用
作为模块的参数时,请尝试以下操作

-name:将质询发布到DNS
路线53:
区域:“{app_domain}}”
记录:“{item.key}}”
类型:TXT
ttl:60
#注意:item.value是TXT条目的列表,路由53
#要求每个条目都用引号括起来
值:“{item.value | map('regex_replace','^(.*)$','\“\\1\”)| list}”
访问密钥:{{aws\U访问密钥}”
密钥:{{aws\u secret\u key}”
使用命令“{acme_data.challenge_data_dns}”
何时:更改acme_数据

非常感谢!我不知道module param。我还在处理其他问题,解决方案完成后将在这里发布。