2017-12-07 10 views
0

マイAnsible脚本:"useraddの:無効なユーザー名" 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

どのように不明確な質問がありますか? OPは間違ったデータ構造を使用し、デバッグに関する質問です。 OPは明らかに問題を示し、MVCEとエラーメッセージを表示します。 – techraf

答えて

1

あなたが(その後Ansibleが内部失敗useradd実行にJSON表現としてこの値を渡す)リストとしてusers変数を定義しました。

あなたは文字列として値を定義する必要があります。

users: jjohnson 

しかし、あなたは複数のユーザーを(複数名usersの通り)を追加したい場合は、ループを使用する必要があります。右の例がthe top of the documentationにあります。

+0

ymlファイルをユーザーのリストとともに使用したいので、実際のプレイブックにユーザーがリストされていません – houazy

+0

これをやめることは何もありません。私はあなたの質問に答えました。 – techraf

+0

ありがとう、私はそれを得た!申し訳ありませんが、シェフから来て、それは少し違っています。例えば、ユーザーモジュールの場合、ユーザーがノードにいない場合はuseraddを行い、ユーザーがノードの場合はusermodを実行します。 – houazy

関連する問題