thanks for reply , I think my source file is yaml file 
I can pass the yaml validator online 

here are 2 items in teams.yml 

"teams": [
>     {"chinese_name": "\u79d8\u66f8\u90e8","description": 
> "\u79d8\u66f8\u90e8","gid": 10125,"location": ["hq"],"name": "aa","users": 
> ["chenhu","chouf"]},
>     {"chinese_name": "\u8ca1\u52d9\u6703\u8a08\u8655","description": 
> "\u8ca1\u52d9\u6703\u8a08\u8655","gid": 10126,"location": ["hq"],"name": 
> "ac","users": ["chenchiao","chengc"]}
>     ]
>

even I assign a name in task , I still can not use users with tasks below

> - name: load 
> teams.yml                                                                     
>                                             
>
>   tags:
>     - env
>   include_vars:
>     file: files/teams.yml
>     name: teams
>
> - name: debug
>   tags:
>     - env
>   debug:
>     msg: "{{ item }}"
>   loop: " {{ users }}"
>
>
I can print the {{ teams }} , but can not get valule from {{ team.users }} 
or {{ team.name }}
FAILED! => {"msg": "The task includes an option with an undefined variable. 
The error was: 'name' is undefined / The error was: 'chinese_name' is 
undefined


Eric Chang於 2018年11月22日星期四 UTC+8下午9時08分01秒寫道:
>
> I want to run a playbook to create an individual folder for users in 
> different groups
>
> and I already create a teams.yml file like below
>
>>         {
>>
>>             "chinese_name": "\u8ca1\u52d9\u6703\u8a08\u8655",
>>
>>             "description": "\u8ca1\u52d9\u6703\u8a08\u8655",
>>
>>             "gid": 10126,
>>
>>             "location": [
>>
>>                 "hq"
>>
>>             ],
>>
>>             "name": "ac",
>>
>>             "users": [
>>
>>                 "tsengyi",
>>
>>                 "chenp",
>>
>>                 "lich",
>>
>>                 "hsiaoch",
>>
>>                 "wangr",
>>
>>                 "dengm",
>>
>>                 ""guot". 
>>
>>             ]
>>
>>
>>
> then I wrote a task
>
>>  ### load yaml file first
>
> - name: load teams.yml                                                    
>>                                                                             
>>           
>
>   tags:
>
>     - env
>
>   include_vars:
>
>     file: files/konwen/teams.yml
>
>
> - name: create folders
>
>   file:
>
>     path: "/home/{{item.user}}/D"
>
>     state: present
>
>   when:  item.name ==  'ac'
>
>   with_items: "{{ teams}}"
>
>  
>
>  but the result 
>>
>>  tsengyi
>>
>> '[u'\''tsengyi'\'', u'\''chenp'\'', u'\''lich'\'', u'\''hsiaoch'\'', 
>>> u'\''wangr'\'', u'\''dengm'\'', u'\''guot'\'', u'\''hsul'\'', 
>>> u'\''linm'\'']'
>>
>>  wangc
>>
>>
>> looks like ansible take whole list  into a single value
>
> I expect to create /home/tsengyi/D , /home/chenp/D .....and so on
>
> How can I separate the list into piece to do what I need ??
>
>
>

-- 
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/9e072b18-c4c8-4247-a9b6-44c394d47ef1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to