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;
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
New contributor
add a comment |
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
New contributor
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
add a comment |
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
New contributor
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
linux ansible ansible-playbook
New contributor
New contributor
edited Apr 5 at 6:26
Zoredache
112k30231379
112k30231379
New contributor
asked Apr 4 at 15:37
VggVgg
1
1
New contributor
New contributor
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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 %
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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 %
add a comment |
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 %
add a comment |
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 %
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 %
answered 2 days ago
ZoredacheZoredache
112k30231379
112k30231379
add a comment |
add a comment |
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.
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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