我的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}
为什么会掉下来?
答案 0 :(得分:1)
您将'||'
变量定义为列表(然后Ansible在内部将此值作为JSON表示传递给失败的users
可执行文件。
您应该将值定义为字符串:
useradd
但是如果你想添加多个用户(如复数名users: jjohnson
建议的那样),你应该使用循环。有一个例子适合您the top of the documentation。