lookup.ini plugin doesn't work

393 views
Skip to first unread message

Neha Singh

unread,
Mar 10, 2023, 7:55:17 AM3/10/23
to Ansible Project
Hi Team,

I have created one file where I have specify a variable:

path: /opt/si/ansible/conf/virtual_host

transient_partition_size = 200G

And then trying to print the variable by using lookup through another playbook:

- debug:
msg: "{{ lookup('ini', 'transient_partition_size section={{control_environment}} file=/opt/si/ansible/conf/virtual-host') }}"

Result:
Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while running the lookup plugin 'ini'. Error was a <class 'ConfigParser.MissingSectionHeaderError'>, original message: File contains no section headers.\nfile: <???>, line: 1\nu'transient_partition_size = 200G\\n'"}

Can you help me here..?
Please find more info regarding version
 ansible --version
ansible 2.9.27
python version = 2.7.5 (default, May 27 2022, 11:27:32) [GCC 4.8.5 20150623 (Red Hat
 4.8.5-44)]

Thanks
Neha

Abhijeet Kasurde

unread,
Mar 10, 2023, 8:00:40 AM3/10/23
to ansible...@googlegroups.com
Error is - File contains no section headers.

You need a section in ini file that you have created.

--
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/c80f627b-cdc9-4cf2-94f2-f3727fc175d1n%40googlegroups.com.


--
Thanks,
Abhijeet Kasurde

Neha Singh

unread,
Mar 10, 2023, 8:17:08 AM3/10/23
to Ansible Project
Ok, one more question though. I have not mentioned any file extension like .ini, .conf, .cfg. Will that work without the same as well.

Thanks 
Neha

Abhijeet Janwalkar

unread,
Mar 10, 2023, 8:30:14 AM3/10/23
to ansible...@googlegroups.com
Hey,
Is there a typo in file name 
- and _.
Or it's only in mail.

Warm regards
Abhijeet 

Neha Singh

unread,
Mar 10, 2023, 8:52:10 AM3/10/23
to Ansible Project
Hi Abhijeet,

I have updated my config file as below:

file path: /opt/si/ansible/conf/virtual_host.conf

[control_environment]
transient_partition_size = 150G


and my playbook task is as below:

- debug:
msg: "{{ lookup('ini', 'transient_partition_size section={{control_environment}} file=/opt/si/ansible/conf/virtual_host.conf') }}"


Error is as below:
Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while running the lookup plugin 'ini'. Error was a <class 'ConfigParser.NoSectionError'>, original message: No section:

Not sure, what is the issue now..

Thanks

Neha Singh

unread,
Mar 10, 2023, 8:55:10 AM3/10/23
to Ansible Project
Adding the full error message:

Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while running the lookup plugin 'ini'. Error was a <class 'ConfigParser.NoSectionError'>, original message: No section: u'edgy'"}ESC[0m

Abhijeet Kasurde

unread,
Mar 10, 2023, 9:06:27 AM3/10/23
to ansible...@googlegroups.com
# cat virtual_host.conf
[control_environment]
transient_partition_size = 150G

---
- hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: "{{ lookup('ini', 'transient_partition_size section=control_environment file=virtual_host.conf') }}"


output -
```
TASK [debug] *******************************************************************
task path: /Volumes/data/src/playbooks/section.yml:5
ok: [localhost] => {
    "msg": "150G"
}
```




--
Thanks,
Abhijeet Kasurde

Neha Singh

unread,
Mar 10, 2023, 9:14:54 AM3/10/23
to Ansible Project
As mentioned in the error:
Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while running the lookup plugin 'ini'. Error was a <class 'ConfigParser.NoSectionError'>, original message: No section: u'edgy'"}

When I have updated the section name with 'edgy' as below:

[edgy]
transient_partition_size = 150G

and used the same playbook task code

it works for me now.. I suppose, there is somewhere in my system,  control_environment value has beens et to edgy, if I am not wrong. Do u have any idea about this?

Thanks

Abhijeet Kasurde

unread,
Mar 10, 2023, 9:37:39 AM3/10/23
to ansible...@googlegroups.com
You are using '{{' for Jinja templating for section name in the lookup plugin.

If you are setting the section value to 'control_environment' then don't include the '{{' in the lookup plugin.




--
Thanks,
Abhijeet Kasurde

Todd Lewis

unread,
Mar 10, 2023, 10:02:12 AM3/10/23
to Ansible Project
Your quoting is all wrong. You are passing in one long string.
Use this:

  msg: "{{ lookup('ini', 'transient_partition_size', section='control_environment', file='/opt/si/ansible/conf/virtual_host.conf') }}"

Todd Lewis

unread,
Mar 10, 2023, 10:08:56 AM3/10/23
to Ansible Project
Also, if your file doesn't have sections, only `key=value` pairs, then specify `type='properties'`, like this:

msg: "{{ lookup('ini', 'transient_partition_size', type='properties', file='/opt/si/ansible/conf/virtual_host.conf') }}"
Reply all
Reply to author
Forward
0 new messages