Hi All,
Hope all is well with everyone during these bad times because of covid :-).
I would like to know some good advices from the community on a scenario am working on , it goes as followed:
Cfg file:
SectionA:
ls:
dirname:
Command: List
cp:
srcdirname:
tgtDirname:
command: copy
SectionB:
ls:
dirname:
command: List
And in playbook right now i am accessing it using with_dict and include_vars but i am not able to use cmd line argument for “section” for eg if i say
ansible-playbook playbook.yaml -e section=SectionA
Any suggestions of how we can access the values of dicts by first checking the section of Cfg file which is passed on cmd line and then performing action according to the command in the dict values.
Thanks in advance for your response .
This is too abstract to comment on in a useful way.
What does "not able to use" mean - does it fail?
Please provide the real, actual, working playbook and try to use less
opaque terms.
Also, what is the overall goal you are trying to achieve?
From the little information you've shared, the closest I can guess is
"copy some configuration file(s)".
Please share that as well.
Hi D.Visser,
Sorry for not being able to share the info properly , i am using the below playbook
- hosts: localhost
vars_files:
- “{{ config }}.cfg”
tasks:
- name: run ls
shell: “‘{{ item.command }}’ ‘{{ item.dir }}’”
when: “‘{{ item.command }}’ == ‘ls’”
with_items: “{{ SectionA }}”
cfg file -----------
SectionA:
first:
DirName: /home/kumar/DevFileTestLocation
Command: ls
SectionB:
ls:
Second:
DirName: /home/kumar/Dev
So when i call ansible-playbook playbook.yaml , it works because i am calling test SectionA directly in the playbook under with_items but if am running command like
ansible-playbook playbook.yaml -e section=SectionA , so that my dict is picked automatically via cmd line , it doesnt work.
I want that flexibility so that i can call playbook on the basis if my sections and use data within those sections.
also i just want to know if there is any other way to use the data in sections when i set cmd line param using section=SectionA/SectionB.
Thanks