lookup.ini plugin doesn't work

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

Error is - File contains no section headers.

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

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

Hey,
Is there a typo in file name

  • and _.
    Or it’s only in mail.

Warm regards
Abhijeet

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

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

cat virtual_host.conf

[control_environment]
transient_partition_size = 150G

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

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.

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’) }}”

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’) }}”