在 Atlas 上构建时出现 Ansible sudo 错误

在 Atlas 上构建时出现 Ansible sudo 错误

我一直在尝试在 Atlas 上构建我的 Vagrant 配置。我还使用 ansible 进行配置,并且遇到了一些 sudo 问题。

在尝试在 Atlas 上运行 ansible playbook 时设置 VM 后,出现此错误:

virtualbox-iso: failed: [127.0.0.1] => {"failed": true, "item": ""}
virtualbox-iso: msg: Failed to lock apt for exclusive operation

所以我在网上发现 sudo 权限可能是问题所在。在我的主剧本文件中,权限设置为:

sudo: true
remote_user: vagrant

运行 playbook 后,当我需要 sudo 权限时,整个事情就中断了,在 playbook 中的这个 cmd 上:

-name: Update apt
sudo: yes
apt: update_cache=yes

有人知道如何解决这种情况吗?如何修复 ansible 上的 sudo 权限?

注意。当我尝试在本地构建这台机器时,它运行良好,但当我在 Atlas 上运行它时,我遇到了问题。

更新:我相信 sudo 访问是一个真正的问题,我已经删除了该部分配置,但它在需要 sudo 的其他部分仍然失败。

virtualbox-iso: failed: [127.0.0.1] => (item=curl,wget,python-software-  properties) => {"failed": true, "item": "curl,wget,python-software-properties"}
 virtualbox-iso: stderr: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
virtualbox-iso: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

答案1

Failed to lock apt for exclusive operation意味着其他应用程序正在持有 apt 锁。也许系统上正在运行其他安装进程?

检查ps aux | grep apt输出中是否存在可疑进程。

错误消息也可能是由于权限不足造成的。您可能需要检查 Ansible 用户是否通过 sudo 获得完全 root 访问权限。要检查,请使用 打开主机上的 sudoers visudo。您应该看到类似这样的一行

ansible_user ALL=(ALL) NOPASSWD: ALL

相关内容