-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
bugThis issue/PR relates to a bugThis issue/PR relates to a bugfeatureThis issue/PR relates to a feature requestThis issue/PR relates to a feature requestfilterfilter pluginfilter pluginpluginsplugin (any type)plugin (any type)
Description
Summary
I am trying to parse a smb.conf (Samba configuration) file that contains these two lines:
[global]
idmap config * : backend = tdb
idmap config * : range = 2000-9999
It looks like from_ini stumbles across the : and uses it as a separator instead of the = in the same line.
Issue Type
Bug Report
Component Name
from_ini
Ansible Version
$ ansible --version
ansible [core 2.20.2]
config file = /home/media/anarchy/gurubert/git/kunden/bbaw/ceph-deployment/ansible.cfg
configured module search path = ['/home/gurubert/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/anarchy/gurubert/venv-ansible/lib/python3.13/site-packages/ansible
ansible collection location = /home/gurubert/.ansible/collections:/usr/share/ansible/collections
executable location = /home/anarchy/gurubert/venv-ansible/bin/ansible
python version = 3.13.5 (main, Jun 25 2025, 18:55:22) [GCC 14.2.0] (/home/anarchy/gurubert/venv-ansible/bin/python3)
jinja version = 3.1.6
pyyaml version = 6.0.3 (with libyaml v0.2.5)Community.general Version
$ ansible-galaxy collection list community.general
# /home/anarchy/gurubert/venv-ansible/lib/python3.13/site-packages/ansible_collections
Collection Version
----------------- -------
community.general 12.3.0
Configuration
$ ansible-config dump --only-changed
OS / Environment
No response
Steps to Reproduce
Example comes from a CTDB cluster, the first task could also slurp the contents of /etc/samba/smb.conf
- name: Get SMB config
ansible.builtin.shell:
cmd: "net conf list"
register: smbconfigraw
- name: Put SMB config into var
delegate_to: "{{ groups[current_ctdb_group][0] }}"
ansible.builtin.set_fact:
current_samba_config: "{{ smbconfigraw.stdout | community.general.from_ini(allow_no_value=true, ) }}"
Expected Results
I expect a nice dictionary like this:
"global": {
"idmap config * : backend": "tdb",
"idmap config * : range": "2000-9999",
}
Actual Results
[ERROR]: Task failed: Finalization of task args for 'ansible.builtin.set_fact' failed: Error while resolving value for 'current_samba_config': The filter plugin 'community.general.from_ini' failed: from_ini failed to parse given string: While reading from '<???>' [line 10]: option 'idmap config *' in section 'global' already exists
Task failed.
Origin: includes/subtask-update-samba-net-conf.yaml:18:3
16 register: smbconfigraw
17
18 - name: Put SMB config into var
^ column 3
<<< caused by >>>
Finalization of task args for 'ansible.builtin.set_fact' failed.
Origin: includes/subtask-update-samba-net-conf.yaml:20:3
18 - name: Put SMB config into var
19 delegate_to: "{{ groups[current_ctdb_group][0] }}"
20 ansible.builtin.set_fact:
^ column 3
<<< caused by >>>
Error while resolving value for 'current_samba_config': The filter plugin 'community.general.from_ini' failed: from_ini failed to parse given string: While reading from '<???>' [line 10]: option 'idmap config *' in section 'global' already exists
Origin: includes/subtask-update-samba-net-conf.yaml:21:27
19 delegate_to: "{{ groups[current_ctdb_group][0] }}"
20 ansible.builtin.set_fact:
21 current_samba_config: "{{ smbconfigraw.stdout | community.general.from_ini }}"
^ column 27
fatal: [bbaw-mds01]: FAILED! => {"changed": false, "msg": "Task failed: Finalization of task args for 'ansible.builtin.set_fact' failed: Error while resolving value for 'current_samba_config': The filter plugin 'community.general.from_ini' failed: from_ini failed to parse given string: While reading from '<???>' [line 10]: option 'idmap config *' in section 'global' already exists"}
Code of Conduct
- I agree to follow the Ansible Code of Conduct
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugThis issue/PR relates to a bugThis issue/PR relates to a bugfeatureThis issue/PR relates to a feature requestThis issue/PR relates to a feature requestfilterfilter pluginfilter pluginpluginsplugin (any type)plugin (any type)