Ansible:“;变成;当用户使用';无通行证';

Ansible:“;变成;当用户使用';无通行证';,ansible,Ansible,我正试图以不同的用户身份在远程计算机上执行“git”任务。 我以我的用户身份登录到机器,这是一个具有NOPASSWD的sudoer 这是这出戏的要点 - name: my play remote_user: francesco tasks: - name: pull repo become: yes become_user: machine_user git: ... 使用“Been:yes”时,我得到一个缺少Been密码的错误(我假设这是用

我正试图以不同的用户身份在远程计算机上执行“git”任务。 我以我的用户身份登录到机器,这是一个具有NOPASSWD的sudoer

这是这出戏的要点

- name: my play
  remote_user: francesco
  tasks:
    - name: pull repo
      become: yes
      become_user: machine_user
      git: ...

使用“Been:yes”时,我得到一个缺少Been密码的错误(我假设这是用户“francesco”的sudo密码),没有“Been:yes”时,我得到的权限被拒绝错误,因此,我认为git任务不是以“machine\u user”的身份执行的。

当我将一个用户添加到“sudo”组时,我遇到了相同的错误,而sudo组不需要密码;当使用完全相同的配置单独添加该用户时,它可以顺利工作


如果您的用户从组中获得权限,我建议改为在用户上配置权限。

当我将一个用户添加到“sudo”组时,我遇到了相同的错误,sudo组不需要密码;当使用完全相同的配置单独添加该用户时,它可以顺利工作


如果您的用户从组中获得权限,我建议改为在用户上配置权限。

这对我来说很好。我确认您可以在框中输入更少的密码
sudo
,以确保绝对安全。如果您使用
-vvvv
运行并显示有关缺少密码的错误,也会有所帮助。另外,您使用的是什么版本的ansible?这是详细的输出。如果我的
sudoers
丢失(针对您的情况进行了修改)
francesco ALL=(ALL)NOPASSWD:ALL
,我可以复制它的唯一方法
ssh
发送到该主机并尝试运行命令,即
sudo date
。如果它提示输入密码,那么你就知道了。我会用ssh连接到机器并运行sudo date。。。不需要密码。这里还有来自/etc/sudoers:francesco ALL=NOPASSWD:ALL的相关行,这对我来说很好。我确认您可以在框中输入更少的密码
sudo
,以确保绝对安全。如果您使用
-vvvv
运行并显示有关缺少密码的错误,也会有所帮助。另外,您使用的是什么版本的ansible?这是详细的输出。如果我的
sudoers
丢失(针对您的情况进行了修改)
francesco ALL=(ALL)NOPASSWD:ALL
,我可以复制它的唯一方法
ssh
发送到该主机并尝试运行命令,即
sudo date
。如果它提示输入密码,那么你就知道了。我会用ssh连接到机器并运行sudo date。。。不需要密码。这里还有来自/etc/sudoers:francesco ALL=NOPASSWD:ALL的相关行