Ansible 用于传递不同vault机密的循环任务
您好,我正在使用ansible运行python脚本并发送带有附件的电子邮件。在这里,我使用ansible vault将参数作为秘密传递 这是我的剧本Ansible 用于传递不同vault机密的循环任务,ansible,ansible-2.x,Ansible,Ansible 2.x,您好,我正在使用ansible运行python脚本并发送带有附件的电子邮件。在这里,我使用ansible vault将参数作为秘密传递 这是我的剧本 - name: Run python script for generating Projects report command: python GetProjects.py -o { org1 } -p { pat1 } register: result - debug: msg="{{result.stdout}}"
- name: Run python script for generating Projects report
command: python GetProjects.py -o { org1 } -p { pat1 }
register: result
- debug: msg="{{result.stdout}}"
- name: Run python script for generating Repos report
command: python GetRepos.py -o { org1 } -p { pat1 }
register: result
- debug: msg="{{result.stdout}}"
- name: Sending an e-mail using the remote machine, not the Ansible controller node
mail:
host: localhost
port: 25
from:
to:
subject: Reports
body: Hi
attach:
- {org1}_file1.csv
- {org1}_file2.scv
一旦org1和pat1的执行完成,并通过org1文件发送电子邮件,我想再次为org2和pat2运行此脚本,并将文件生成为{org2}\u file1.csv、{org2\u file2.csv}并发送单独的电子邮件
如何循环传递此参数并再次发送单独的电子邮件?有几种方法可以做到这一点,您可以在每个任务上使用
和_项,但这是不可重用的
使用两个变量创建generateReport.yml
,organization
和pat
,playbook使用这些变量生成一个文件,附加名称[organization]\u file.csv
,并发送邮件。然后创建一个剧本,其中包括generateReport.yml
发送organization
和pat
的值的任务
generateReport.yml
-name:运行python脚本生成项目报告
命令:python GetProjects.py-o{{organization}}-p{{{pat}
寄存器:结果
-调试:
msg:“{result.stdout}”
-名称:使用远程计算机而不是Ansible controller节点发送电子邮件
邮寄:
主机:本地主机
港口:25
发件人:example@gmail.com
致:emusk@gmail.com
主题:报告
身体:嗨
附上:
-“{{organization}}{u file.csv”
main.yml
---
-主机:本地主机
连接:本地
任务:
-名称:生成报告
包含任务:generateReport.yml
变量:
组织:“{item.organization}”
pat:{{item.pat}}
有以下项目:
-{组织:“org1”,pat:“pat1”}
-{组织:“org2”,pat:“pat2”}
我正在按原样运行您的脚本,这会导致错误-致命:[localhost]:失败!=>{“msg”:"该任务包含一个带有未定义变量的选项。错误是:“organization”未定义\n\n错误似乎出现在generateReport.yml中:第3行第3列,但可能\n出现在文件的其他位置,具体取决于语法问题。\n\n出现问题的行可能是:\n\n\n-name:运行python脚本以生成项目报告\n^\n“}我的错误,我忘了添加变量,我只是编辑了它。我希望它会有用。