नमस्ते मैं ansible का उपयोग करके और अनुलग्नक के साथ ईमेल भेजने के लिए अजगर स्क्रिप्ट चला रहा हूं। जहां मैं तर्कों को गुप्त तिजोरी का उपयोग करके गुप्त रूप से पारित कर रहा हूं।

यहाँ मेरी प्लेबुक है

- 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} के रूप में जेनरेट करना चाहता हूं और अलग ईमेल भेजना चाहता हूं।

मैं इस तर्क को कैसे पारित कर सकता हूं और फिर से अलग ईमेल भेज सकता हूं?

1
megha 9 नवम्बर 2020, 03:27

1 उत्तर

सबसे बढ़िया उत्तर

आप इसे कई तरीकों से कर सकते हैं, आप प्रत्येक कार्य पर with_items का उपयोग कर सकते हैं लेकिन यह इतना पुन: प्रयोज्य नहीं है।

generateReport.yml दो चर organization और pat के साथ बनाएं, उन चरों के साथ प्लेबुक नाम [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" }
1
gary lopez 9 नवम्बर 2020, 06:21