Ansible with_dicts group_vars playbookConfigure all hosts, then create a list of the config for all hosts?Ansible: setting hostname over inventoryARP behavior in LinuxAnsible group_vars variable precedence (group_vars override other group_vars)Ansible playbook IssueI want to run a.sh on remote hosts and fetch all output files. output file with timestamp. I wrote below code and it is failing with errorAnsible:how to adapt the output format of map (with extract) filtersAnsible - manage installed apps and send output via email - variables are filling wrongRestrict user providing asterisk * on the prompt ansible awxAnsible: Debug and iteration over dicts fails in ansible playbook

How did the USSR manage to innovate in an environment characterized by government censorship and high bureaucracy?

Non-Jewish family in an Orthodox Jewish Wedding

Copycat chess is back

Download, install and reboot computer at night if needed

Shell script can be run only with sh command

How do we improve the relationship with a client software team that performs poorly and is becoming less collaborative?

How is the claim "I am in New York only if I am in America" the same as "If I am in New York, then I am in America?

Copenhagen passport control - US citizen

How does one intimidate enemies without having the capacity for violence?

Chess with symmetric move-square

What is the meaning of "of trouble" in the following sentence?

Can town administrative "code" overule state laws like those forbidding trespassing?

Prevent a directory in /tmp from being deleted

How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)

Calculus Optimization - Point on graph closest to given point

How do you conduct xenoanthropology after first contact?

What Brexit solution does the DUP want?

"which" command doesn't work / path of Safari?

Motorized valve interfering with button?

Is there a minimum number of transactions in a block?

Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?

Patience, young "Padovan"

I see my dog run

Showing the closure of a compact subset need not be compact



Ansible with_dicts group_vars playbook


Configure all hosts, then create a list of the config for all hosts?Ansible: setting hostname over inventoryARP behavior in LinuxAnsible group_vars variable precedence (group_vars override other group_vars)Ansible playbook IssueI want to run a.sh on remote hosts and fetch all output files. output file with timestamp. I wrote below code and it is failing with errorAnsible:how to adapt the output format of map (with extract) filtersAnsible - manage installed apps and send output via email - variables are filling wrongRestrict user providing asterisk * on the prompt ansible awxAnsible: Debug and iteration over dicts fails in ansible playbook






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















My requirement is to get the below output in a file



 - targets: [ 'host1:port1', 'host2:port1' , 'host3:port1' ] 
job : hostgroup1

- targets: [ 'host1:port2', 'host2:port2' , 'host3:port3' ]
job : hostgroup2


I have the input file as below and it should fetch the data from variables or group variables . Under Hostgroup1 I may have n number of hosts and under Hostgroup2 I may have n number of hosts



 Hostgroup1 : host1,host2,host3....n 
Hostgroup2 : host1,host2,host3....n


I am confused how to create jinja template and tasks to get this output










share|improve this question









New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • the input file isn't a standard format. if it were json or yaml it'd be much easier to parse

    – Mark Wagner
    Apr 4 at 15:59











  • Please let me know how to create json or yml or jinja to get this output

    – Vgg
    Apr 4 at 16:33











  • Are the hostgroup1 and hostgroup2 groups in the ansible inventory? Where is the port defined at?

    – Zoredache
    Apr 5 at 6:29

















0















My requirement is to get the below output in a file



 - targets: [ 'host1:port1', 'host2:port1' , 'host3:port1' ] 
job : hostgroup1

- targets: [ 'host1:port2', 'host2:port2' , 'host3:port3' ]
job : hostgroup2


I have the input file as below and it should fetch the data from variables or group variables . Under Hostgroup1 I may have n number of hosts and under Hostgroup2 I may have n number of hosts



 Hostgroup1 : host1,host2,host3....n 
Hostgroup2 : host1,host2,host3....n


I am confused how to create jinja template and tasks to get this output










share|improve this question









New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • the input file isn't a standard format. if it were json or yaml it'd be much easier to parse

    – Mark Wagner
    Apr 4 at 15:59











  • Please let me know how to create json or yml or jinja to get this output

    – Vgg
    Apr 4 at 16:33











  • Are the hostgroup1 and hostgroup2 groups in the ansible inventory? Where is the port defined at?

    – Zoredache
    Apr 5 at 6:29













0












0








0








My requirement is to get the below output in a file



 - targets: [ 'host1:port1', 'host2:port1' , 'host3:port1' ] 
job : hostgroup1

- targets: [ 'host1:port2', 'host2:port2' , 'host3:port3' ]
job : hostgroup2


I have the input file as below and it should fetch the data from variables or group variables . Under Hostgroup1 I may have n number of hosts and under Hostgroup2 I may have n number of hosts



 Hostgroup1 : host1,host2,host3....n 
Hostgroup2 : host1,host2,host3....n


I am confused how to create jinja template and tasks to get this output










share|improve this question









New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












My requirement is to get the below output in a file



 - targets: [ 'host1:port1', 'host2:port1' , 'host3:port1' ] 
job : hostgroup1

- targets: [ 'host1:port2', 'host2:port2' , 'host3:port3' ]
job : hostgroup2


I have the input file as below and it should fetch the data from variables or group variables . Under Hostgroup1 I may have n number of hosts and under Hostgroup2 I may have n number of hosts



 Hostgroup1 : host1,host2,host3....n 
Hostgroup2 : host1,host2,host3....n


I am confused how to create jinja template and tasks to get this output







linux ansible ansible-playbook






share|improve this question









New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Apr 5 at 6:26









Zoredache

112k30231379




112k30231379






New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Apr 4 at 15:37









VggVgg

1




1




New contributor




Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Vgg is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • the input file isn't a standard format. if it were json or yaml it'd be much easier to parse

    – Mark Wagner
    Apr 4 at 15:59











  • Please let me know how to create json or yml or jinja to get this output

    – Vgg
    Apr 4 at 16:33











  • Are the hostgroup1 and hostgroup2 groups in the ansible inventory? Where is the port defined at?

    – Zoredache
    Apr 5 at 6:29

















  • the input file isn't a standard format. if it were json or yaml it'd be much easier to parse

    – Mark Wagner
    Apr 4 at 15:59











  • Please let me know how to create json or yml or jinja to get this output

    – Vgg
    Apr 4 at 16:33











  • Are the hostgroup1 and hostgroup2 groups in the ansible inventory? Where is the port defined at?

    – Zoredache
    Apr 5 at 6:29
















the input file isn't a standard format. if it were json or yaml it'd be much easier to parse

– Mark Wagner
Apr 4 at 15:59





the input file isn't a standard format. if it were json or yaml it'd be much easier to parse

– Mark Wagner
Apr 4 at 15:59













Please let me know how to create json or yml or jinja to get this output

– Vgg
Apr 4 at 16:33





Please let me know how to create json or yml or jinja to get this output

– Vgg
Apr 4 at 16:33













Are the hostgroup1 and hostgroup2 groups in the ansible inventory? Where is the port defined at?

– Zoredache
Apr 5 at 6:29





Are the hostgroup1 and hostgroup2 groups in the ansible inventory? Where is the port defined at?

– Zoredache
Apr 5 at 6:29










1 Answer
1






active

oldest

votes


















0














Well, I defined something like your data in the 'vars' section of a playbook. You could put it in a vars file, or you could possibly define these vars in your hostvars/groupvars or something. This probably isn't exactly what you want, but you can adapt it to your needs.



- hosts: localhost
gather_facts: no
vars:
data:
- "name": "hostgroup1", "port": 80, "hosts": ["host1", "host2", "host3"]
- "name": "hostgroup2", "port": 443, "hosts": ["host5", "host6", "host7"]
tasks:
- debug:
msg: |
% for item in data %
- job: item.name
targets: [ %- for host in item.hosts -%
" host : item.port ",
%- endfor -%]
% endfor %


Output



# ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook 20190404_sf_961529.yml 

PLAY [localhost] ************************************************************************************

TASK [debug] ****************************************************************************************
ok: [localhost] =>

MSG:

- job: hostgroup1
targets: ["host1:80","host2:80","host3:80",]
- job: hostgroup2
targets: ["host5:443","host6:443","host7:443",]


PLAY RECAP ******************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0


For the output to a file you can use a task like this.



 - copy:
dest: outputpath
content: |
% for item in data %
- job: item.name
targets: [ %- for host in item.hosts -%
" host : item.port ",
%- endfor -%]
% endfor %





share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "2"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );






    Vgg is a new contributor. Be nice, and check out our Code of Conduct.









    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f961529%2fansible-with-dicts-group-vars-playbook%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Well, I defined something like your data in the 'vars' section of a playbook. You could put it in a vars file, or you could possibly define these vars in your hostvars/groupvars or something. This probably isn't exactly what you want, but you can adapt it to your needs.



    - hosts: localhost
    gather_facts: no
    vars:
    data:
    - "name": "hostgroup1", "port": 80, "hosts": ["host1", "host2", "host3"]
    - "name": "hostgroup2", "port": 443, "hosts": ["host5", "host6", "host7"]
    tasks:
    - debug:
    msg: |
    % for item in data %
    - job: item.name
    targets: [ %- for host in item.hosts -%
    " host : item.port ",
    %- endfor -%]
    % endfor %


    Output



    # ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook 20190404_sf_961529.yml 

    PLAY [localhost] ************************************************************************************

    TASK [debug] ****************************************************************************************
    ok: [localhost] =>

    MSG:

    - job: hostgroup1
    targets: ["host1:80","host2:80","host3:80",]
    - job: hostgroup2
    targets: ["host5:443","host6:443","host7:443",]


    PLAY RECAP ******************************************************************************************
    localhost : ok=1 changed=0 unreachable=0 failed=0


    For the output to a file you can use a task like this.



     - copy:
    dest: outputpath
    content: |
    % for item in data %
    - job: item.name
    targets: [ %- for host in item.hosts -%
    " host : item.port ",
    %- endfor -%]
    % endfor %





    share|improve this answer



























      0














      Well, I defined something like your data in the 'vars' section of a playbook. You could put it in a vars file, or you could possibly define these vars in your hostvars/groupvars or something. This probably isn't exactly what you want, but you can adapt it to your needs.



      - hosts: localhost
      gather_facts: no
      vars:
      data:
      - "name": "hostgroup1", "port": 80, "hosts": ["host1", "host2", "host3"]
      - "name": "hostgroup2", "port": 443, "hosts": ["host5", "host6", "host7"]
      tasks:
      - debug:
      msg: |
      % for item in data %
      - job: item.name
      targets: [ %- for host in item.hosts -%
      " host : item.port ",
      %- endfor -%]
      % endfor %


      Output



      # ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook 20190404_sf_961529.yml 

      PLAY [localhost] ************************************************************************************

      TASK [debug] ****************************************************************************************
      ok: [localhost] =>

      MSG:

      - job: hostgroup1
      targets: ["host1:80","host2:80","host3:80",]
      - job: hostgroup2
      targets: ["host5:443","host6:443","host7:443",]


      PLAY RECAP ******************************************************************************************
      localhost : ok=1 changed=0 unreachable=0 failed=0


      For the output to a file you can use a task like this.



       - copy:
      dest: outputpath
      content: |
      % for item in data %
      - job: item.name
      targets: [ %- for host in item.hosts -%
      " host : item.port ",
      %- endfor -%]
      % endfor %





      share|improve this answer

























        0












        0








        0







        Well, I defined something like your data in the 'vars' section of a playbook. You could put it in a vars file, or you could possibly define these vars in your hostvars/groupvars or something. This probably isn't exactly what you want, but you can adapt it to your needs.



        - hosts: localhost
        gather_facts: no
        vars:
        data:
        - "name": "hostgroup1", "port": 80, "hosts": ["host1", "host2", "host3"]
        - "name": "hostgroup2", "port": 443, "hosts": ["host5", "host6", "host7"]
        tasks:
        - debug:
        msg: |
        % for item in data %
        - job: item.name
        targets: [ %- for host in item.hosts -%
        " host : item.port ",
        %- endfor -%]
        % endfor %


        Output



        # ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook 20190404_sf_961529.yml 

        PLAY [localhost] ************************************************************************************

        TASK [debug] ****************************************************************************************
        ok: [localhost] =>

        MSG:

        - job: hostgroup1
        targets: ["host1:80","host2:80","host3:80",]
        - job: hostgroup2
        targets: ["host5:443","host6:443","host7:443",]


        PLAY RECAP ******************************************************************************************
        localhost : ok=1 changed=0 unreachable=0 failed=0


        For the output to a file you can use a task like this.



         - copy:
        dest: outputpath
        content: |
        % for item in data %
        - job: item.name
        targets: [ %- for host in item.hosts -%
        " host : item.port ",
        %- endfor -%]
        % endfor %





        share|improve this answer













        Well, I defined something like your data in the 'vars' section of a playbook. You could put it in a vars file, or you could possibly define these vars in your hostvars/groupvars or something. This probably isn't exactly what you want, but you can adapt it to your needs.



        - hosts: localhost
        gather_facts: no
        vars:
        data:
        - "name": "hostgroup1", "port": 80, "hosts": ["host1", "host2", "host3"]
        - "name": "hostgroup2", "port": 443, "hosts": ["host5", "host6", "host7"]
        tasks:
        - debug:
        msg: |
        % for item in data %
        - job: item.name
        targets: [ %- for host in item.hosts -%
        " host : item.port ",
        %- endfor -%]
        % endfor %


        Output



        # ANSIBLE_STDOUT_CALLBACK=debug ansible-playbook 20190404_sf_961529.yml 

        PLAY [localhost] ************************************************************************************

        TASK [debug] ****************************************************************************************
        ok: [localhost] =>

        MSG:

        - job: hostgroup1
        targets: ["host1:80","host2:80","host3:80",]
        - job: hostgroup2
        targets: ["host5:443","host6:443","host7:443",]


        PLAY RECAP ******************************************************************************************
        localhost : ok=1 changed=0 unreachable=0 failed=0


        For the output to a file you can use a task like this.



         - copy:
        dest: outputpath
        content: |
        % for item in data %
        - job: item.name
        targets: [ %- for host in item.hosts -%
        " host : item.port ",
        %- endfor -%]
        % endfor %






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 days ago









        ZoredacheZoredache

        112k30231379




        112k30231379




















            Vgg is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            Vgg is a new contributor. Be nice, and check out our Code of Conduct.












            Vgg is a new contributor. Be nice, and check out our Code of Conduct.











            Vgg is a new contributor. Be nice, and check out our Code of Conduct.














            Thanks for contributing an answer to Server Fault!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f961529%2fansible-with-dicts-group-vars-playbook%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

            Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

            What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company