问题描述
大家好!
我编写了一个非常简单的 Ansible 角色来将所有软件包更新到 Suse Leap 15.2:
- name: All packages updated
package:
name: "*"
state: latest
但似乎Zypper模块有问题:
TASK [system_update : All packages updated] ***************************************************************************************************************************************************************************************************
task path: /home/merlin/ansible-kt-linux/roles/system_update/tasks/main.yml:10
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: merlin
<localhost> EXEC /bin/sh -c 'echo ~merlin && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811 `" && echo ansible-tmp-1617094154.778992-48329012899811="` echo /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811 `" ) && sleep 0'
Using module file /usr/lib/python3.6/site-packages/ansible/modules/packaging/os/zypper.py
<localhost> PUT /home/merlin/.ansible/tmp/ansible-local-5239dx5tukgw/tmpvf5upp37 TO /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py
<localhost> EXEC /bin/sh -c 'chmod u+x /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/ /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py && sleep 0'
<localhost> EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-qfmrjmpwqhyapufsdqunaohtmlxjucdk ; /usr/bin/python /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py'"'"' && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
File "/home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py",line 102,in <module>
_ansiballz_main()
File "/home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py",line 94,in _ansiballz_main
invoke_module(zipped_mod,temp_path,ANSIBALLZ_ParaMS)
File "/home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py",line 40,in invoke_module
runpy.run_module(mod_name='ansible.modules.packaging.os.zypper',init_globals=None,run_name='__main__',alter_sys=True)
File "/usr/lib64/python2.7/runpy.py",line 188,in run_module
fname,loader,pkg_name)
File "/usr/lib64/python2.7/runpy.py",line 82,in _run_module_code
mod_name,mod_fname,mod_loader,line 72,in _run_code
exec code in run_globals
File "/tmp/ansible_zypper_payload_jYlnfB/ansible_zypper_payload.zip/ansible/modules/packaging/os/zypper.py",line 195,in <module>
ImportError: No module named xml
fatal: [localhost]: Failed! => {
"changed": false,"module_stderr": "Traceback (most recent call last):\n File \"/home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py\",in <module>\n _ansiballz_main()\n File \"/home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py\",in _ansiballz_main\n invoke_module(zipped_mod,ANSIBALLZ_ParaMS)\n File \"/home/merlin/.ansible/tmp/ansible-tmp-1617094154.778992-48329012899811/AnsiballZ_zypper.py\",in invoke_module\n runpy.run_module(mod_name='ansible.modules.packaging.os.zypper',alter_sys=True)\n File \"/usr/lib64/python2.7/runpy.py\",in run_module\n fname,pkg_name)\n File \"/usr/lib64/python2.7/runpy.py\",in _run_module_code\n mod_name,in _run_code\n exec code in run_globals\n File \"/tmp/ansible_zypper_payload_jYlnfB/ansible_zypper_payload.zip/ansible/modules/packaging/os/zypper.py\",in <module>\nImportError: No module named xml\n","module_stdout": "","msg": "MODULE FAILURE\nSee stdout/stderr for the exact error","rc": 1
}
PLAY RECAP ************************************************************************************************************************************************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 Failed=1 skipped=0 rescued=0 ignored=0
不幸的是,我无法从中看出问题究竟是什么。有没有人知道这个问题?
解决方法
用shell解决了:
- name: "Install python-xml on Suse"
shell: zypper -n install python-xml