Ansible不支付注意'group'在CentOS 7上分配用户的主要群组

我正在运行Ansible 2.2.0.0,在CentOS 7服务器上创build用户,具体如下:

- name: User creation user: name="{{item.username}}" group="{{item.username if users_create_per_user_group else item.group}}" groups="{{item.groups | join(',')}}" shell="{{item.shell if item.shell is defined else users_default_shell}}" comment="{{item.name}}" uid="{{item.uid}}" home="{{item.home if item.home is defined else []}}" password="{{ item.password if item.password is defined else '!' }}" with_items: "{{users}}" tags: ['users','configuration'] 

我将“wordpress”分配给“primary_group”(以便内容开发人员可以在wordpress区域中读写,而不必担心chgrp文件),我发现variables在playbook输出中正确分配:

 ok: [someserver] => (item={u'username': u'someuser', **u'group': [u'wordpress']**, u'name': u'somefirstname somelastname', u'ssh_key': [u'ssh-rsa AN_SSH_PUBLIC_KEY'], u'groups': [u'someuser', u'apache', u'sftpusers'], u'password': u'A UNIX PASSWORD HASH', u'uid': 2101}) 

但用户的主要群体保持“someuser”,而不是“wordpress”,尽pipe没有错误产生。

为了扩大康斯坦丁的想法:

  1. 在用户创build之前添加一个debugging语句来检查users_create_per_user_group的值

     - name: Debug users_create_per_user_group debug: var=users_create_per_user_group 
  2. 更新用户创build,以便您可以将group作为列表处理

     - name: User creation user: name="{{item.username}}" group="{{item.username if users_create_per_user_group else (item.group if item.group is string else item.group[0]) }}" groups="{{item.groups | join(',')}}" shell="{{item.shell | default(users_default_shell) }}" comment="{{item.name}}" uid="{{item.uid}}" home="{{item.home | default([])}}" password="{{ item.password | default('!') }}" tags: ['users','configuration']