Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ansible/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 用于传递不同vault机密的循环任务_Ansible_Ansible 2.x - Fatal编程技术网

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}}"

您好,我正在使用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 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“}我的错误,我忘了添加变量,我只是编辑了它。我希望它会有用。