" useradd:用户名无效"在Ansible用户模块中

时间:2017-12-07 01:49:35

标签: ansible

 

我的Ansible剧本:

- hosts: docker
  remote_user: root

  tasks:
  - include_vars: users.yml
  - name: Add users to local docker groups 
    user: name='{{users}}' groups='{{group_name}}' append=yes

users.yml档案:

users: 
    - jjohnson

group_name: docker 

ansible-playbook docker-groups.yml

PLAY [docker] **********************************************************************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************************************************
ok: [server]

TASK [include_vars] ****************************************************************************************************************************************************************************************
ok: [server]

TASK [Add users to local docker groups] ********************************************************************************************************************************************************************
fatal: [server]: FAILED! => {"changed": false, "failed": true, "msg": "useradd: invalid user name '['jjohnson']'\n", "name": "['jjohnson']", "rc": 3}

为什么会掉下来?

1 个答案:

答案 0 :(得分:1)

您将'||'变量定义为列表(然后Ansible在内部将此值作为JSON表示传递给失败的users可执行文件。

您应该将值定义为字符串:

useradd

但是如果你想添加多个用户(如复数名users: jjohnson 建议的那样),你应该使用循环。有一个例子适合您the top of the documentation