Vladimir Botka‏@
Thank you - it works 

ב-יום ראשון, 18 ביוני 2023 בשעה 09:51:58 UTC+3, Vladimir Botka כתב/ה:

> On Wed, 14 Jun 2023 04:07:38 -0700 (PDT)
> "[email protected]" <[email protected]> wrote:
>
> > *My J2 file* 
> > 
> > select * from {{ item.id}} where {{ item.color}} 
> > 
> > *My input files*
> > 
> > *File-1.yml :*
> > Id: 1
> > color: blue 
> > 
> > *File-2**.yml** :*
> > Id: 2
> > color: red 
> > 
> > *My Playbook – that is not working. *
> > - hosts: localhost
> > become: true
> > gather_facts: yes
> > tasks:
> > - name: 
> > template:
> > src: /opt/input.sql.j2
> > dest: /opt//{{item.id}}.sql
> > with_items:
> > - file-1.yaml
> > 
> > - file-2.yaml
> > 
> > *The output files I wish to have *
> > 
> > 1.sql 
> > select * from 1 where blue 
> > 
> > 2.sql 
> > select * from 2 where red
>
> Given the files
>
> shell> cat file-1.yaml 
> id: 1
> color: blue
>
> shell> cat file-2.yaml 
> id: 2
> color: red
>
> Read the files in the loop. Test it
>
> shell> cat pb.yml 
> - hosts: localhost
> tasks:
> - debug:
> var: i
> loop:
> - file-1.yaml
> - file-2.yaml
> vars:
> i: "{{ lookup('file', item )|from_yaml }}"
>
> gives (abridged)
>
> TASK [debug]
> ****************************************************
> ok: [localhost] => (item=file-1.yaml) => ansible_loop_var: item
> i:
> color: blue
> id: 1
> item: file-1.yaml
> ok: [localhost] => (item=file-2.yaml) => 
> ansible_loop_var: item
> i:
> color: red
> id: 2
> item: file-2.yaml
>
> The variable *item* keeps the name of the current file in the loop.
> You have to use the variable *i* both in the template file
>
> shell> cat input.sql.j2
> select * from {{ i.id }} where {{ i.color }}
>
> and in the *template* task. The play
>
> shell> cat pb.yml 
> - hosts: localhost
> tasks:
> - template:
> src: input.sql.j2
> dest: "/tmp/{{ i.id }}.sql"
> loop:
> - file-1.yaml
> - file-2.yaml
> vars:
> i: "{{ lookup('file', item )|from_yaml }}"
>
> creates the files
>
> shell> cat /tmp/1.sql 
> select * from 1 where blue
>
> shell> cat /tmp/2.sql 
> select * from 2 where red
>
>
> -- 
> Vladimir Botka
>

-- 
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/34a83ba2-7f1c-4f21-bdb7-8af8bca633e5n%40googlegroups.com.

Reply via email to