Re: [ansible-project] Loop files that will be used as variables

2023-06-19 Thread dudu.c...@gmail.com

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)
> "dudu.c...@gmail.com"  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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/34a83ba2-7f1c-4f21-bdb7-8af8bca633e5n%40googlegroups.com.


Re: [ansible-project] Loop files that will be used as variables

2023-06-18 Thread Vladimir Botka
On Wed, 14 Jun 2023 04:07:38 -0700 (PDT)
"dudu.c...@gmail.com"  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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/20230618085129.7afc8696%40gmail.com.


pgpSCcKQC7ffv.pgp
Description: OpenPGP digital signature


Re: [ansible-project] Loop files that will be used as variables

2023-06-18 Thread Dick Visser
On Sun, 18 Jun 2023 at 07:43, dudu.c...@gmail.com 
wrote:

> Sorry  - But i didnt fully understand your question
>
> My input files are static  - The problem that i'm trying to solve is how
> to loop "vars_file" for the same task
>

What are you trying to achieve with the playbook?



>
> ב-יום רביעי, 14 ביוני 2023 בשעה 22:01:56 UTC+3, Will McDonald כתב/ה:
>
>> I think this answer might give you a pointer in the right direction:
>> https://stackoverflow.com/a/52237675
>>
>> It should work, but there could be a better/simpler way to do this. Do
>> you control the generation of the files that provide your source variables?
>>
>> What's the *actual *problem you need to solve? (Obviously dynamically
>> generating and presumably running some SQL but can you step back a level or
>> two and describe the actual goal?)
>>
>>
>> On Wed, 14 Jun 2023 at 12:07, dudu.c...@gmail.com 
>> wrote:
>>
>>> Hi ,
>>>
>>>
>>> I’m using the template module that takes a J2 template and update the
>>> relevant fields.
>>>
>>> My problem is When I want to create a file per file input should be used
>>> as variable – I’m actually need to understand how to loop file that should
>>> be used as var files
>>>
>>>
>>> *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
>>>
>>> --
>>> 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 ansible-proje...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/ansible-project/50d4e830-9330-43be-95dc-68795a311d9an%40googlegroups.com
>>> 
>>> .
>>>
>> --
> 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 ansible-project+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/809b9f8d-9440-43f0-8a4c-64baab6eb0a9n%40googlegroups.com
> 
> .
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAF8BbLac4DokB9T5eKrdjwLLjHUmKffzvSUi_%2BcthzxVTc7p-w%40mail.gmail.com.


Re: [ansible-project] Loop files that will be used as variables

2023-06-17 Thread dudu.c...@gmail.com
Sorry  - But i didnt fully understand your question 

My input files are static  - The problem that i'm trying to solve is how to 
loop "vars_file" for the same task 

ב-יום רביעי, 14 ביוני 2023 בשעה 22:01:56 UTC+3, Will McDonald כתב/ה:

> I think this answer might give you a pointer in the right direction: 
> https://stackoverflow.com/a/52237675
>
> It should work, but there could be a better/simpler way to do this. Do you 
> control the generation of the files that provide your source variables?
>
> What's the *actual *problem you need to solve? (Obviously dynamically 
> generating and presumably running some SQL but can you step back a level or 
> two and describe the actual goal?)
>
>
> On Wed, 14 Jun 2023 at 12:07, dudu.c...@gmail.com  
> wrote:
>
>> Hi , 
>>
>>
>> I’m using the template module that takes a J2 template and update the 
>> relevant fields.
>>
>> My problem is When I want to create a file per file input should be used 
>> as variable – I’m actually need to understand how to loop file that should 
>> be used as var files
>>
>>
>> *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
>>
>> -- 
>> 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 ansible-proje...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/50d4e830-9330-43be-95dc-68795a311d9an%40googlegroups.com
>>  
>> 
>> .
>>
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/809b9f8d-9440-43f0-8a4c-64baab6eb0a9n%40googlegroups.com.


Re: [ansible-project] Loop files that will be used as variables

2023-06-14 Thread Will McDonald
I think this answer might give you a pointer in the right direction:
https://stackoverflow.com/a/52237675

It should work, but there could be a better/simpler way to do this. Do you
control the generation of the files that provide your source variables?

What's the *actual *problem you need to solve? (Obviously dynamically
generating and presumably running some SQL but can you step back a level or
two and describe the actual goal?)


On Wed, 14 Jun 2023 at 12:07, dudu.c...@gmail.com 
wrote:

> Hi ,
>
>
> I’m using the template module that takes a J2 template and update the
> relevant fields.
>
> My problem is When I want to create a file per file input should be used
> as variable – I’m actually need to understand how to loop file that should
> be used as var files
>
>
> *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
>
> --
> 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 ansible-project+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/50d4e830-9330-43be-95dc-68795a311d9an%40googlegroups.com
> 
> .
>

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAKtKohRFy9yojZ5X9v9ja0V7WVUYU%2BKP5FuYkA1ZxXRd1KRSqQ%40mail.gmail.com.


[ansible-project] Loop files that will be used as variables

2023-06-14 Thread dudu.c...@gmail.com


Hi , 


I’m using the template module that takes a J2 template and update the 
relevant fields.

My problem is When I want to create a file per file input should be used as 
variable – I’m actually need to understand how to loop file that should be 
used as var files


*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

-- 
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/50d4e830-9330-43be-95dc-68795a311d9an%40googlegroups.com.