Ansible 1.9.4:无法锁定apt以进行独占操作

时间:2015-11-06 09:26:38

标签: ansible

我遇到了Failed to lock apt for exclusive operation问题: https://github.com/geerlingguy/ansible-role-apache/issues/50

我在GitHub上发布了很多细节。

我搜索了很多“无法锁定专属操作”的Ansible投诉,但没有简单的答案。有帮助吗?

10 个答案:

答案 0 :(得分:16)

我在设置几个新盒子时也遇到了这个错误。我以[{1}}身份连接,所以我认为没有必要,但它是:

root

现在一切正常。

答案 1 :(得分:3)

就我而言,ansible 试图锁定不存在的 /var/lib/apt/lists/

ansible 给我的错误是 Failed to lock apt for exclusive operation: Failed to lock directory /var/lib/apt/lists/: E:Could not open lock file /var/lib/apt/lists/lock - open (2: No such file or directory)

添加列表目录修复了问题:

- name: packages | ensure apt list dir exists
  file:
    path: /var/lib/apt/lists/
    state: directory
    mode: 0755

答案 2 :(得分:2)

以下面相同的顺序运行以下命令可以解决此问题:

sudo rm -rf /var/lib/apt/lists/*
sudo apt-get clean
sudo apt-get update

答案 3 :(得分:2)

我知道很久以前这个问题已得到解答,但对我而言,解决方案却有所不同。 问题是update_cache步骤。我在每个安装步骤都有这个,并且以某种方式导致了" apt失败的锁定错误"。 解决方案是将update_cache添加为单独的步骤,如下所示:

  • 任务:
    • name:update apt list 易于: update_cache:是的

答案 4 :(得分:1)

在我的主机文件中,我有一些主机将sudo使用的用户与Ansible所使用的SSH用户不同,因此我为主机中的每个主机指定了ansible_useransible_become_user库存。

在那些ansible_user == ansible_become_user的主机上,我得到了Failed to lock apt for exclusive operation

对我来说,解决方案是在用户两个参数相同的情况下删除ansible_become_user行。

答案 5 :(得分:0)

我在剧本中有remote_user: root,而且这种情况经常发生。我不知道为什么,它仅在某些角色上发生,而在其他角色上却没有(但总是在同一位置。)我删除了remote_user: root并停止了。我只使用--become--become-user=root。 (我使用的是哪个,但由于某种原因它仍然随机未能获得锁。)

答案 6 :(得分:0)

https://serverfault.com/questions/716260/ansible-sudo-error-while-building-on-atlas

  

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

答案 7 :(得分:0)

update_cache从“ yes”更改为“ no”:

update_cache: no

答案 8 :(得分:0)

我在使用 ansible 设置 ceph 集群时遇到了同样的错误。仅在没有 sudo 的情况下运行 ansible-playbook 就对我有用!

答案 9 :(得分:-1)

好的,所以Ansible,SSH或角色没有任何问题。只是Debian中的apt可能会变得非常困惑并将其锁定。当我使用自制的Docker VM时,我只需要重新创建我的图像和容器以使APT再次工作。