Good question about whether the dict is in scope. 
I import the vars this way at the top of the playbook:
  vars_files:
    - vars/studentdict.yml
    - vars/staffdict.yml

I run the playbook with become: yes. I verified that root and the local 
ansible user can read the dict.

I wonder if dashes in my date fields are breaking it. I am testing quoting 
those entries right now.

On Wednesday, June 22, 2016 at 7:04:09 PM UTC-5, Dick Davies wrote:
>
> I always find with_dict fiddly, it'll work eventually. I can't see 
> anything obvious at first glance 
> ( 
> I do think 
>
>    --email={{ item.value.name }}@domain 
>
> should be 
>
>    --email="{{ item.key }}@domain" 
>
> but I don't think Ansible is getting as far as even opening the dict yet 
> ) 
>
> When I get this kind of issue, I cut down the size of the dict to a 
> little sample set, just to verify the YAML 
> is formatted correctly (no whitespace gotchas?). 
>
> Also, are you sure the dict is in scope at this point? 
>
> On 22 June 2016 at 20:55, Joanna Delaporte <[email protected] 
> <javascript:>> wrote: 
> > I messed up and deleted my first post. Sorry! 
> > 
> > I think I need another pair of eyes here. I am attempting to run a dict 
> of 
> > users through an ipa user-add command, but it fails with the error 
> > "with_dict expects a dict." I believe I have formatted my dict correctly 
> > (it's about 40,000 lines long, generated from a python3 script): 
> > 
> > --- 
> > students: 
> >   username1: 
> >       lastname: jibberish 
> >       firstname: jibberish 
> >       firstinitial: jibberish 
> >       studentid: jibberish 
> >       dob: jibberish 
> >       dateexpires: 2018-06-19 
> >       epochexpiry: 1529415778 
> >       uid: jibberish 
> >       passwordhash: "jibberish" 
> >   username2: 
> >       lastname: jibberish 
> >       firstname: jibberish 
> >       firstinitial: jibberish 
> >       studentid: jibberish 
> >       dob: jibberish 
> >       dateexpires: 2018-06-19 
> >       epochexpiry: 1529416593 
> >       uid: jibberish 
> >       passwordhash: "jibberish" 
> >   username3: 
> >       lastname: jibberish 
> >       firstname: jibberish 
> >       firstinitial: jibberish 
> >       studentid: jibberish 
> >       dob: jibberish 
> >       dateexpires: 2018-06-19 
> >       epochexpiry: 1529416755 
> >       uid: jibberish 
> >       passwordhash: "jibberish" 
> > 
> > And here is the play where I am trying to use it: 
> >   - name: Add existing student users to ipaserver 
> >     command: "/bin/ipa user-add 
> >             {{ item.key }} 
> >             --first='{{ item.value.firstname }}' 
> >             --last='{{ item.value.lastname }}' 
> >             --cn='{{item.value.firstname}} {{item.value.lastname}}' 
> >             --email={{ item.value.name }}@domain 
> >             --shell=/bin/bash 
> >             --homedir='/home/students/{{ item.value.firstinitial }}/{{ 
> > item.key }}' 
> >             --uid='{{ item.value.uid }}' 
> >             --gidnumber='{{ item.value.uid }}' 
> >             --skeleton=/etc/skel 
> >             --setattr userpassword='{crypt}{{ item.value.passwordhash}}' 
> >             --title=student" 
> >     with_dict: "{{students}}" 
> >     register: added_students 
> > 
> > And the error: 
> > TASK [Add existing student users to ipaserver] 
> > ********************************* 
> > fatal: [216.125.253.133]: FAILED! => {"failed": true, "msg": "with_dict 
> > expects a dict"} 
> > Running it verbose only gives me the task path in addition to the above 
> > error. 
> > 
> > Is there a maximum size a dict can be? Is there something else wrong 
> with my 
> > dict? I have tried it as a list (with a -<space> before each username 
> and 
> > with_items in the play), but got a unicode error. I'm stumped. 
> > 
> > Thanks for taking a look! 
> > 
> > -- 
> > 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] <javascript:>. 
> > To post to this group, send email to [email protected] 
> <javascript:>. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/ansible-project/2fe49d88-e756-43ab-b6e6-e99ac62b6ffc%40googlegroups.com.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
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/132a0fb5-4361-4f1d-ab7e-144c28222697%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to