当前位置: 首页 > 知识库问答 >
问题:

Ansible playbook中的“apt”模块每次在不同主机上执行时都会随机失败,并显示消息“未能锁定apt以进行独占操作”

皇甫智明
2023-03-14

当我试图在一组主机(app01和app02)上安装一组软件包(“apache2”、“libapache2 mod wsgi”、“python pip”、“python virtualenv”)时,它会在app01或app02上随机失败。在最初几次重试后,主机上已经安装了所需的软件包。后续执行在app01或app02上继续随机失败,而不是返回简单的成功。

在ubuntu 16.04上运行anable控制器和主机

控制器具有ansible 2.8.4

我已经在剧本中设置了“成为:是”。我已经尝试运行apt-get清洁和apt-get更新。在主机上

库存文件

[webserver]
app01 ansible_python_interpreter=python3
app02 ansible_python_interpreter=python3

剧本

---
- hosts: webserver
  tasks:
    - name: install web components
      become: yes
      apt: 
        name: ['apache2', 'libapache2-mod-wsgi', 'python-pip', 'python-virtualenv'] 
        state: present 
        update_cache: yes

在第一次运行中,在主机app01上执行失败

在第二次运行中,在主机app02上执行失败

第一轮

shekhar@control:~/ansible$ ansible-playbook -v playbooks/webservers.yml
Using /home/shekhar/ansible/ansible.cfg as config file

PLAY [webserver] ******************************************************************************

TASK [Gathering Facts] ******************************************************************************
ok: [app01]
ok: [app02]

TASK [install web components] ******************************************************************************
fatal: [app01]: FAILED! => {"changed": false, "msg": "Failed to lock apt for exclusive operation"}
ok: [app02] => {"cache_update_time": 1568203558, "cache_updated": false, "changed": false}

PLAY RECAP ******************************************************************************
app01                      : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
app02                      : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

第二轮

shekhar@control:~/ansible$ ansible-playbook -v playbooks/webservers.yml
Using /home/shekhar/ansible/ansible.cfg as config file

PLAY [webserver] ******************************************************************************

TASK [Gathering Facts] ******************************************************************************
ok: [app01]
ok: [app02]

TASK [install web components] ******************************************************************************
fatal: [app02]: FAILED! => {"changed": false, "msg": "Failed to lock apt for exclusive operation"}
ok: [app01] => {"cache_update_time": 1568203558, "cache_updated": false, "changed": false}

PLAY RECAP ******************************************************************************
app01                      : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
app02                      : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0  

共有1个答案

仰雅昶
2023-03-14

行为有点奇怪...一次成功,另一次失败。

我猜你的app01和app02实际上是同一个主机!如果是这样的话,这两份工作互相争斗听起来很正常。

 类似资料:
  • 当我使用扫描仪或尝试获取用户输入时,我得到消息: 失败:生成失败,出现异常。 > 出错了:任务“:run”的执行失败。 处理“命令”C:\ProgramFiles\Java\jdk-13.0.1\bin\Java。exe“”以非零退出值1结束 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--scan以获得完整的见解。 在

  • 问题内容: 我正在运行Travis构建,构建mysql:5.7.27 docker映像时失败。Dockerfile运行,然后出现错误。 使用curl我可以看到它正在重定向,但是重定向到URL的结果为404。有人看到这种行为并且有补救措施吗?在debian进行更改之前,它基本上是不可修复的吗? 问题答案: 这是由于事实 由于Wheezy和Jessie最近已集成到archive.debian.org结

  • 我试图让程序从列表中随机打印一个项目,然后程序要求用户在有真/假条件的地方输入一些信息,然后返回用户到起点,在那里他们可以选择一个新的“轨道” 我遇到的问题是,只有“listone”被选中,而不是随机的列表选择,这要归功于所有的帮助。

  • 将“find any()”流操作放在哪里有关系吗?我应该直接在过滤器操作后放置它吗?还是嵌套的并行流是问题所在?

  • 我们在goal org.codehaus.mojo:apt-maven-plugin:1.0-alpha-5上的构建有问题 我尝试了以下方法,从无法使用MAVEN构建到错误-未能执行goal org.apache.MAVEN.plugins:maven-compiler-plugin:3.1:compile 插件: 生成日志:

  • 有人面临同样的问题吗?我试图清除gradle缓存和删除crashlytics依赖关系,因为我读到它将由Android Studio自动处理,但崩溃不会被记录。 使用Android Studio 4.1.1的Iam(从以前的版本升级) Build#AI-201.8743.12.41.653283,构建于2020年11月5日运行时版本:1.8.0_242-Release-1644-B3-6222593