使用ansible在远程机器上的用户权限
user privileges on remote machine using ansible
我正在尝试 运行 在远程服务器上使用 ansible 2.1 执行以下任务(运行安装 debian 软件包需要 sudo 权限)。但是,当我 运行 命令时,它似乎失败了,并在下面复制了错误。如果您有任何关于如何进一步解决此问题的想法,我们将不胜感激。
任务
---
- name: transferring artifact to server
local_action: shell ls -d /tmp/test/target/*.jar
register: test_build
- copy: src={{ test_build.stdout }} dest=/home/ubuntu/ owner=ubuntu group=ubuntu mode=644 backup=yes
become: true
become_user: ubuntu
become_method: sudo
错误
fatal: [testserver]: FAILED! => {"failed": true, "msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user. For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
我将 ansible.cfg 中的 allow_world_readable_tmpfiles 标志设置为 True(在 absible 2.1 中默认为 False)。这允许 ansible 将其视为警告而不是允许我继续的错误。其他建议的选项(我没有尝试包括使用流水线或安装 acl 工具)。
"Ubuntu" 是非特权用户帐户。您不是以 sudo 的身份调用复制命令,而是以 sudo 的形式将 "su" 调用到非特权帐户中,而 运行 的复制命令是 "ubuntu"(非特权)。 Ansible 完全按照您的吩咐去做。
您不应该使用非特权帐户成为非特权帐户。这是 Ansible 中的一个安全漏洞。为什么不以 ubuntu 而不是您开始时使用的任何用户身份登录?
我正在尝试 运行 在远程服务器上使用 ansible 2.1 执行以下任务(运行安装 debian 软件包需要 sudo 权限)。但是,当我 运行 命令时,它似乎失败了,并在下面复制了错误。如果您有任何关于如何进一步解决此问题的想法,我们将不胜感激。
任务
---
- name: transferring artifact to server
local_action: shell ls -d /tmp/test/target/*.jar
register: test_build
- copy: src={{ test_build.stdout }} dest=/home/ubuntu/ owner=ubuntu group=ubuntu mode=644 backup=yes
become: true
become_user: ubuntu
become_method: sudo
错误
fatal: [testserver]: FAILED! => {"failed": true, "msg": "Failed to set permissions on the temporary files Ansible needs to create when becoming an unprivileged user. For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
我将 ansible.cfg 中的 allow_world_readable_tmpfiles 标志设置为 True(在 absible 2.1 中默认为 False)。这允许 ansible 将其视为警告而不是允许我继续的错误。其他建议的选项(我没有尝试包括使用流水线或安装 acl 工具)。
"Ubuntu" 是非特权用户帐户。您不是以 sudo 的身份调用复制命令,而是以 sudo 的形式将 "su" 调用到非特权帐户中,而 运行 的复制命令是 "ubuntu"(非特权)。 Ansible 完全按照您的吩咐去做。
您不应该使用非特权帐户成为非特权帐户。这是 Ansible 中的一个安全漏洞。为什么不以 ubuntu 而不是您开始时使用的任何用户身份登录?