&引用;apt";Ansible playbook中的模块每次在不同主机上执行时都会随机失败,并显示消息“0”;未能为独占操作锁定apt“;
当我尝试在一组主机(app01和app02)上安装软件包列表(“apache2”、“libapache2 mod wsgi”、“python pip”、“python virtualenv”)时, 它在app01或app02上随机失败。 在最初几次重试后,主机上已经安装了所需的软件包。后续执行在app01或app02上继续随机失败,而不是返回简单的成功 ansible控制器和主机都运行ubuntu 16.04 控制器具有ansible 2.8.4 我已经在剧本中设定了“成为:是的”。 我已经尝试运行apt get clean和apt get update。关于主持人 库存文件&引用;apt";Ansible playbook中的模块每次在不同主机上执行时都会随机失败,并显示消息“0”;未能为独占操作锁定apt“;,ansible,Ansible,当我尝试在一组主机(app01和app02)上安装软件包列表(“apache2”、“libapache2 mod wsgi”、“python pip”、“python virtualenv”)时, 它在app01或app02上随机失败。 在最初几次重试后,主机上已经安装了所需的软件包。后续执行在app01或app02上继续随机失败,而不是返回简单的成功 ansible控制器和主机都运行ubuntu 16.04 控制器具有ansible 2.8.4 我已经在剧本中设定了“成为:是的”。 我已经尝试
[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
这种行为有点奇怪……每次一个成功,另一个失败
我猜您的app01和app02实际上是同一个主机!如果是这样的话,这两份工作互相争斗听起来很正常。可能与之非常相似。确保已禁用主机上的自动更新。更一般地说(如果自动更新不是问题),请检查是什么导致apt启动并在运行playbook的外部主机上获得锁定。是否确定app01和app02是两个不同的主机!否则这两份工作互相争斗听起来很正常…@xenlo:你说得对。我的错。My/etc/hosts文件错误地填充了指向同一台机器的app01和app02,尽管实际上它们是不同的机器。一旦我解决了这个问题,问题就消失了。在这种情况下,我不懂礼节。我应该删除这个问题吗?或者你将你的评论作为答案发布,这样我就可以投票并接受答案。@nitin3685,不知道我们该怎么做。但你的建议听起来不错,我把我的评论作为答案抄下来,我觉得不错。你是对的。My/etc/hosts文件错误地填充了指向同一台机器的app01和app02,尽管实际上它们是不同的机器。一旦我解决了这个问题,问题就消失了。