循环传递不同的保险库秘密的任务
loop ansible tasks for passing different vault secrets
您好,我正在 运行ning python 脚本使用 ansible 并发送带附件的电子邮件。我使用 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}_file1.csv , {org2_file2.csv} 并发送单独的电子邮件。
如何循环传递此参数并再次发送单独的电子邮件?
有几种方法可以做到这一点,您可以在每个任务上使用 with_items
,但这不是那么可重复使用。
使用两个变量 organization
和 pat
创建 generateReport.yml
,剧本使用这些变量生成一个文件以附加名称 [organization]_file.csv
并发送邮件。然后创建一个包含 generateReport.yml
任务的剧本,发送 organization
和 pat
.
的值
generateReport.yml
- name: Run python script for generating Projects report
command: python GetProjects.py -o {{ organization }} -p {{ pat }}
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: example@gmail.com
to: emusk@gmail.com
subject: Reports
body: Hi
attach:
- "{{ organization }}_file.csv"
main.yml
---
- hosts: localhost
connection: local
tasks:
- name: Generate report
include_tasks: generateReport.yml
vars:
organization: "{{ item.organization }}"
pat: "{{ item.pat }}"
with_items:
- { organization: "org1", pat: "pat1" }
- { organization: "org2", pat: "pat2" }
您好,我正在 运行ning python 脚本使用 ansible 并发送带附件的电子邮件。我使用 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}_file1.csv , {org2_file2.csv} 并发送单独的电子邮件。
如何循环传递此参数并再次发送单独的电子邮件?
有几种方法可以做到这一点,您可以在每个任务上使用 with_items
,但这不是那么可重复使用。
使用两个变量 organization
和 pat
创建 generateReport.yml
,剧本使用这些变量生成一个文件以附加名称 [organization]_file.csv
并发送邮件。然后创建一个包含 generateReport.yml
任务的剧本,发送 organization
和 pat
.
generateReport.yml
- name: Run python script for generating Projects report
command: python GetProjects.py -o {{ organization }} -p {{ pat }}
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: example@gmail.com
to: emusk@gmail.com
subject: Reports
body: Hi
attach:
- "{{ organization }}_file.csv"
main.yml
---
- hosts: localhost
connection: local
tasks:
- name: Generate report
include_tasks: generateReport.yml
vars:
organization: "{{ item.organization }}"
pat: "{{ item.pat }}"
with_items:
- { organization: "org1", pat: "pat1" }
- { organization: "org2", pat: "pat2" }