Thank you for sharing this information, I had come across the exact same
problem - use case: gluster storage backends for oVirt clusters.
My role includes the following:
- name: Gluster volume exists - {{gvol_name}}
gluster_volume: >
state=present
name={{gvol_name}}
brick={{gvol_brick}}
options="{ group: virt, storage.owner-uid: '36', storage.owner-gid:
'36' }"
Unfortunately, that syntax still fails with msg: unable to evaluate
dictionary for options.
Do you have any tips on the fix or are you able to send a working
role/playbook that I can use as an example?
Either way, I appreciate you posting your fault and some success online!
:)
On Saturday, July 4, 2015 at 3:52:09 PM UTC+12, Michael Goodness wrote:
>
> Well, apparently I hadn't tried everything yet. I was able to get a
> successful run by including the options parameter in the creation task,
> rather than keeping them separate. I also had to double-quote the expansion
> in my playbook, and single-quote the integers in my variable dictionary:
>
> # file: group_vars/gluster_hosts
>> ...
>> options: { group: virt, storage.owner-uid: '36', storage.owner-gid: '36' }
>> ...
>
>
> (Note the corrections to owner-uid and owner-gid.)
>
> # file: roles/gluster/tasks/main.yml
>> ...
>> - name: Create gluster volumes
>> sudo: true
>> gluster_volume:
>> name={{ item.name }}
>> brick="{% for brick in item.bricks %}{{ brick.mount }}/{{ item.name
>> }}{% if not loop.last %},{% endif %}{% endfor %}"
>> cluster="{{ groups.gluster_hosts|join(',') }}"
>> options="{{ item.options }}"
>> state=present
>> with_items: gluster_volumes
>> tags: gluster
>> ...
>
>
> Seems like there's a bug in the module, and the documentation is
> definitely incorrect. I'll experiment more and see if I can offer a fix.
>
>
> On Friday, July 3, 2015 at 10:33:24 PM UTC-5, Michael Goodness wrote:
>>
>> Greetings, Ansiblites!
>>
>> I'm attempting to write a role that uses the gluster_volume module. All
>> is well right up until I try to specify an 'options' parameter. According
>> to the documentation, I'm to use "a dictionary/hash with
>> options/settings for the volume". The example given is as follows:
>>
>> gluster_volume: state=present name=test1
>>> options='{performance.cache-size: 256MB}'
>>
>>
>> I've matched that syntax in my playbook, and all I get is a complaint
>> from Ansible about quoting. I've tried just about every variation of
>> quoting I can think of: single, double, double-double, escaped, etc.. The
>> closest I (think) have gotten is by specifying the options as a variable,
>> then single-quoting the expansion:
>>
>> # file: group_vars/gluster_hosts
>>> ...
>>> options: { group: virt, storage.owner_uid: 36, storage.owner_gui: 36 }
>>> ...
>>>
>>
>>
>>> # file: roles/gluster/tasks/main.yml
>>> ...
>>> gluster_volume: name={{ name }} options='{{ options }}' state=present
>>> ...
>>
>>
>> Even then, the result is:
>>
>> msg: unable to evaluate dictionary for options
>>
>>
>> Can anyone shed some light on this? I'm at my wit's end.
>>
>
--
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/d0ee360f-69c6-4394-ae8e-0c7c9a4591d1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.