Ansible文件模块错误 - chown失败:无法查找用户

时间:2017-07-10 05:59:08

标签: amazon-web-services unix amazon-ec2 ansible rhel

我正在尝试使用owner模块更改文件的file。我尝试了这段代码:

---
- hosts: super_group
  remote_user: ec2-user
  tasks:
  - name: Checking the user name
    shell: /usr/bin/whoami
    register: username

  - name: Debugging the whoami username
    debug: msg={{ username }}

  - name: Changing the owner of a file
    file: path=/home/ec2-user/test owner={{ username }}

错误:

TASK [Changing the owner of a file] ********************************************
fatal: [test]: FAILED! => {"changed": false, "failed": true, "gid": 0, "group": "root", "mode": "0644", "msg": "chown failed: failed to look up user {'stderr_lines': [], 'changed': True, 'end': '2017-07-10 01:49:11.495709', 'stdout': 'ec2-user', 'cmd': '/usr/bin/whoami', 'start': '2017-07-10 01:49:11.492286', 'delta': '0:00:00.003423', 'stderr': '', 'rc': 0, 'stdout_lines': ['ec2-user']}", "owner": "ec2-user", "path": "/home/ec2-user/test", "secontext": "unconfined_u:object_r:user_home_t:s0", "size": 0, "state": "file", "uid": 1000}
        to retry, use: --limit @/home/ec2-user/ansible/test.retry

debug模块正在向我提供此输出:

TASK [Debugging the whoami username] *******************************************
ok: [test] => {
    "msg": {
        "changed": true,
        "cmd": "/usr/bin/whoami",
        "delta": "0:00:00.003423",
        "end": "2017-07-10 01:49:11.495709",
        "rc": 0,
        "start": "2017-07-10 01:49:11.492286",
        "stderr": "",
        "stderr_lines": [],
        "stdout": "ec2-user",
        "stdout_lines": [
            "ec2-user"
        ]
    }
}

注意:

如果我对username的值进行硬编码,那么它可以正常工作:

  - name: Changing the owner of a file
    file: path=/home/ec2-user/test owner=ec2-user

请告诉我如何解决此问题。

1 个答案:

答案 0 :(得分:6)

没有问题。您想使用username.stdout,而不是username

请检查您使用调试模块打印的值并使用推理。