Hi racker, Yeah I understood ,I finally found a way to use loop and loop_var to build my list of variable and download them .
Thanks for Ur help really appreciate it . Regards, Mano On Mon, 24 May 2021, 21:26 Stefan Hornburg (Racke), <[email protected]> wrote: > On 5/24/21 3:46 PM, Manoj Chander wrote: > > Greetings André, > > > > Thanks you so much for ur time. > > > > The above solution works but i have some 100 jars to download . > > > > Is it possible to set_fact in a loop store the constructed variable > in a list and pass it to *get_url* method . > > > > --- > > - include_vars: > > file: vars.yml > > - set_fact: > > b_url: http://{{item}}/sr/pr/ > > # jar is a list in vars.yml > > loop: "{{ jars }}" > > register: b_url > > - debug: > > msg: "no of sites are ==> {{ b_url }} " > > - name: Container Checks > > block: > > - name: download "{{file }}" > > get_url: > > url: "{{ item }}" > > dest: "/manual/jar/" > > loop: {{b_url}} > > > > Hello Manoj, > > 1) Using register in a set_fact task doesn't make sense, as set_fact is > supposed to set the > variables. > > 2) Do you really need to use set_fact? > > - name: download "{{file }}" > get_url: > url: "http://{{item}}/sr/pr/" > dest: "/manual/jar/" > loop: "{{ jars }}" > > Regards > Racke > > > regards, > > Manoj > > > > On Friday, May 21, 2021 at 11:39:29 AM UTC+5:30 André Liebigt wrote: > > > > Hi, > > > > for this to work artifacturl always needs to be a list. A first > attempt could look like this: > > > > *---* > > *- name: Block to Deploy on Servers* > > * block:* > > * - set_fact:* > > * artifact_url: "https://my.url <https://my.url/>"* > > * - set_fact:* > > * > > * > > * group_id: "{% if app_name == 'group1' > %}/com/connectors/{% elif app_name == 'group2' %}* > > * /com/connectors/{% > else %}/com/services/{% endif %}"* > > * register: group_id * > > * * > > * - set_fact:* > > * artifacturls: * > > * - "{ artifact_url }}{{ group_id }}jar1/{{ app_version > }}/{{ item }}-{{ app_version }}.jar"* > > * **- "{ artifact_url > }}{{ group_id }}jar2/{{ app_version }}/{{ item }}-{{ app_version }}.jar"* > > * when: app_name == group2* > > * * > > ** > > * - set_fact:* > > * artifacturls: * > > * - "{ artifact_url }}{{ group_id }}{{ app_name }}/{{ > app_version }}/{{ app_name }}-{{ app_version }}.jar"* > > * when: app_name != group2* > > > > /pass the constructed variable to another block / > > > > *- name: Block to get file "{{app_name}}"* > > * block:* > > * - name: download "{{app_name}}" form url* > > * get_url:* > > * url: "{{ item }}"* > > * dest: "/manual/{{ app_name }}.jar"* > > * loop:* > > * - {{ artifacturls }}* > > > > This leads to a bit of duplication for group2 which could be omitted > by a more complex construct like this: > > > > * - set_fact:* > > * artifacturls: "({{ artifact_urls | default([])) + {{ > artifact_url }}{{ group_id }}{{ item }}/{{ > > app_version }}/{{ item }}-{{ app_version }}.jar"* > > * when: app_name == group2* > > * loop:* > > * - jar1* > > * - jar2 * > > * > > * > > > > Hope that helps,* > > * > > André > > On Thursday, May 20, 2021 at 12:43:07 PM UTC+2 [email protected] > wrote: > > > > > > Hi , > > > > Im a newbie learnig ansible .im stuck with the below > > > > > > /I need to get input from user and based on input dynamically > create a url ./ > > / > > / > > /input group1 is a single value and group2 is a list / > > / > > / > > /using with_items and loop im able to create variable but > couldnt register it and pass it to get_url module . > > below is one of my failed attempts ./ > > / > > / > > /ansible-playbook -e "app_name=group1 or app_name=group2 ...."/ > > > > *---* > > *- name: Block to Deploy on Servers* > > * block:* > > * - set_fact:* > > * artifact_url: "https://my.url <https://my.url>"* > > * - set_fact:* > > * > > * > > * group_id: "{% if app_name == 'group1' > %}/com/connectors/{% elif app_name == 'group2' %}* > > * /com/connectors/{% else %}/com/services/{% endif > %}"* > > * register: group_id * > > * * > > * - set_fact:* > > * artifacturl: "{ artifact_url }}{{ group_id }}{{ > item }}/{{ app_version }}/{{ item }}-{{ app_version > > }}.jar"* > > *when: app_name == group2* > > *loop:* > > * - jar1* > > * - jar2 * > > *register: artifacturl* > > ** > > * - set_fact:* > > * artifacturl: "{ artifact_url }}{{ group_id }}{{ > app_name }}/{{ app_version }}/{{ app_name }}-{{ > > app_version }}.jar"* > > * when: app_name != group2* > > > > /pass the constructed variable to another block / > > > > *- name: Block to get file "{{app_name}}"* > > * block:* > > * - name: download "{{app_name}}" form url* > > * get_url:* > > * url: "{{ artifacturl }}"* > > * dest: "/manual/{{ app_name }}.jar"* > > * loop:* > > * - {{ artifacturl }}* > > > > -- > > 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] <mailto: > [email protected]>. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/ansible-project/9482dd18-ae18-40db-a254-6fc936adbb93n%40googlegroups.com > > < > https://groups.google.com/d/msgid/ansible-project/9482dd18-ae18-40db-a254-6fc936adbb93n%40googlegroups.com?utm_medium=email&utm_source=footer > >. > > > -- > Ecommerce and Linux consulting + Perl and web application programming. > Debian and Sympa administration. Provisioning with Ansible. > > -- > 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/7d40df1e-238c-0b8a-f867-25e147ec8f92%40linuxia.de > . > -- 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/CAGQNZuT8zZkrO49zZz4Lex5ywiVaNYfCQKSVWxjJe7Vo%2B0enUg%40mail.gmail.com.
