Ansible 2.9模块执行过程中出现意外故障错误(本地连接)



我有一个在本地系统上更新包的剧本。由于这是初始系统配置的一部分,因此它使用本地传输运行。(Ansible运行为:ansible-playbook -c local -i localhost site.yml(

行动手册中的相关任务是:

- name: "Package Management | Update system"
dnf:
name: "*"
state: latest
when:
- config_update_pkgs
- var_update_pkgs_update_system

此任务运行时间较长,通常约为15分钟以上。当Ansible开始下一个任务时,我得到了这个错误:

<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp `"&& mkdir "` echo /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062 `" && echo ansible-tmp-1615995245.1999388-218318-225834592190062="` echo /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062 `" ) && sleep 0'
Using module file /usr/lib/python3.6/site-packages/ansible/modules/system/user.py
<localhost> PUT /root/.ansible/tmp/ansible-local-15829904wg505h/tmpqbqnk3tj TO /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062/AnsiballZ_user.py
<localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062/ /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062/AnsiballZ_user.py && sleep 0'
<localhost> EXEC /bin/sh -c 'TMPDIR=/var/lib/ansible /usr/libexec/platform-python /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062/AnsiballZ_user.py && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-1615995245.1999388-218318-225834592190062/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/ansible/executor/task_executor.py", line 113, in run
item_results = self._run_loop(items)
File "/usr/lib/python3.6/site-packages/ansible/executor/task_executor.py", line 367, in _run_loop
res = self._execute(variables=task_vars)
File "/usr/lib/python3.6/site-packages/ansible/executor/task_executor.py", line 665, in _execute
result = self._handler.run(task_vars=variables)
File "/usr/lib/python3.6/site-packages/ansible/plugins/action/normal.py", line 51, in run
if self._task.action in C._ACTION_SETUP:
AttributeError: module 'ansible.constants' has no attribute '_ACTION_SETUP'
fatal: [localhost]: FAILED! => {
"msg": "Unexpected failure during module execution.",
"stdout": ""
}

我一直在玩ansible.cfg中的persistent_connection设置,运气还不太好。

谢谢。

弄清楚发生了什么:Ansible本身正在用其他包进行更新。事实证明Ansible不喜欢这样。

将剧本更改为:

- name: "Package Management | Update system"
dnf:
name: "*"
state: latest
exclude: ansible
when:
- config_update_pkgs
- var_update_pkgs_update_system

阻止了Ansible更新自己,看起来它解决了我的问题。

感谢@mdaniel的建议,让我仔细查看了实际更新的内容,因为我第一次查看时就错过了。

最新更新