Accessing Cfg file values within nested loops + using sections + passing section in cmd argument

20 views
Skip to first unread message

Akshay Kumar

unread,
Oct 19, 2020, 1:29:43 PM10/19/20
to Ansible Project
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: <dirPath>
       Command: List
    cp:
      srcdirname: <path>
      tgtDirname: <path>
      command: copy

SectionB:
    ls:
      dirname: <dir path>
      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 .

Dick Visser

unread,
Oct 19, 2020, 2:56:48 PM10/19/20
to ansible...@googlegroups.com
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.
> --
> 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/616cc23d-4a80-4b66-9498-443b13f0710en%40googlegroups.com.



--
Dick Visser
Trust & Identity Service Operations Manager
GÉANT

Akshay Kumar

unread,
Oct 19, 2020, 3:51:27 PM10/19/20
to Ansible Project
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
Reply all
Reply to author
Forward
0 new messages