Run multiple Ansible playbooks with Python generated var as Argument in one playbook
by prayag_pjs from LinuxQuestions.org on (#57DBR)
I have python script which generates variables var1 and var2
These variables are used as extra var arguments for Ansible playbooks.
The script variables generated dynamically by python scirpt and playbooks are :
Quote:
Quote:
As you can see script.py and playbook1/2.yml used twice
I want to use above python script and playbook1/2 in one single playbook.
Can some one let me know if its possible to run python script and multiple playbooks in single playbook


These variables are used as extra var arguments for Ansible playbooks.
The script variables generated dynamically by python scirpt and playbooks are :
Quote:
cat palybook1.yml -> - hosts: localhost tasks: - name: "CV: Publish New Versions" katello_content_view_version: username: "{{ username }}" password: "{{ password }}" server_url: "{{ server_url }}" validate_certs: "{{ validate_certs }}" organization: "{{ item.org }}" content_view: "{{ item.cv }}" loop: "{{ cvlist }}" cat palybook2.yml -> - hosts: localhost tasks: - name: "CV: Publish New Versions" katello_content_view_version: username: "{{ username }}" password: "{{ password }}" server_url: "{{ server_url }}" validate_certs: "{{ validate_certs }}" organization: "{{ item.org }}" content_view: "{{ item.cv }}" loop: "{{ cvlist }}" vars1 and vars2 are generated by python script. cat vars1 -> server_url: "https://www.example1.com" certs: true cvlist: - { org: 'ORG1',cv: 'cv1' } - { org: 'ORG2',cv: 'cv2' } - { org: 'ORG3',cv: 'cv3' } - { org: 'ORG4',cv: 'cv4' } - { org: 'ORG5',cv: 'cv5' } cat vars2 -> server_url: "https://www.example2.com" certs: true cvlist: - { org: 'ORG6',cv: 'cv1' } - { org: 'ORG7',cv: 'cv2' } - { org: 'ORG8',cv: 'cv3' } - { org: 'ORG9',cv: 'cv4' } - { org: 'ORG10',cv: 'cv5' } |
python3 script.py --host server1.example.com --cycle dev --user user1 --password password1 > vars1 ansible-playbook playbook1.yml --extra-vars "@vars1" --extra-vars "username=user1 password=password1" python3 script.py --host server2.example.com --cycle dev --user user1 --password password1 > vars2 ansible-playbook playbook2.yml --extra-vars "@vars2" --extra-vars "username=user1 password=password1" |
As you can see script.py and playbook1/2.yml used twice
I want to use above python script and playbook1/2 in one single playbook.
Can some one let me know if its possible to run python script and multiple playbooks in single playbook