thank you all for your findings and recommendations In the same playbook I would like to explain one more scenario , I am using set_facts to use above playbook output as input in the playbook, and I have variables.yml
It has to go through loop and get the server details from each environment, will my below playbook work my variables.yml file # Environment and os as input to pull all servers out of this serverlist: "https://test-dev.test.com/testapi/test/server?environment={{ item }}&os=linux" +# # item should be replaced with the item from the loop and pass it to below playbook vars_files: - "variables.yml" tasks: - name: set the facts per host set_fact: access_token: "{{ hostvars.localhost.output.stdout }}" # this is the output of the above play - name: Make a post call to get server details shell: | cd /var/output/ curl --location --request GET {{ serverlist }} \--header Authorization: Bearer {{ access_token }} > /var/output/servers1.json jq -r '.[]|.serverData[].servers[]' servers1.json > /home/deploy-user/ansible/group_vars/servers1.yml register: data - debug: msg="data , {{ serverlist }}" # this need to replaced from one var file loop: - dev - uat - stg2 On Friday, May 19, 2023 at 5:07:45 AM UTC-7 Rowe, Walter P. (Fed) wrote: > Your curl command places the output in /var/output/{{ item }}.json. > Your jq command reads the output from {{ item }}.json which is not > /var/output/{{ item }}.json. > > Walter > -- > Walter Rowe, Division Chief > Infrastructure Services, OISM > Mobile: 202.355.4123 <(202)%20355-4123> > > On May 19, 2023, at 1:21 AM, Narmada Karthika <[email protected]> wrote: > > I am getting error saying I am using 2 var_files. > ERROR! failed at splitting arguments, either an unbalanced jinja2 block or > quotes: > > I also tried using include_vars which gave me same error, the values in > these 2 files need to be replace at diff locations at play book > some one please suggest what is the best way for this > > name: post call to get servergroup > hosts: localhost > become: true > gather_facts: no > tasks: > - name: set the facts per host > set_fact: > access_token: "{{ hostvars.localhost.output.stdout }}" # this is > the output of the above play > - name: Make a post call to get server details > shell: | > cd /var/output/ > curl --location --request GET "{{ serverlist }}" \--header > 'Authorization: Bearer "{{ access_token }}" > /var/output/"{{ item }}".json > jq -r '.[]|.serverData[].servers[]' "{{ item }}".json > > /home/deploy-user/ansible/group_vars/"{{ item }}".yml > # item and server list from one file and > register: data > - debug: msg="data , {{ repo }}" # this need to replaced from one var > file > loop: > - dev > - uat > - stg2 > > > -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/41e35941-ac2e-48fe-9654-489f0c298c7dn%40googlegroups.com > > <https://groups.google.com/d/msgid/ansible-project/41e35941-ac2e-48fe-9654-489f0c298c7dn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/528d78cf-b99e-4744-9a3c-ce78098f7512n%40googlegroups.com.
