使用命令/外壳模块会导致:值错误:在多次运行中,键名称可能不以下划线开头



Ansible 会在每个使用 shell 或命令模块的任务上抛出错误,但在新机器上首次运行时不会。

我使用的过程是映像一个新的树莓派,然后使用 ansible 来设置我需要的服务。第一次运行 ansible 工作正常,但如果我再次运行它(不更改任何内容(,它会失败,说ValueError: Key name may not begin with an underscore

下面是引发错误的任务示例。在远程计算机上运行/usr/local/bin/pigpiod -v按预期工作/

- name: see if pigpiod is the correct version
  command: "/usr/local/bin/pigpiod -v"
  register: pigpiod_version

这是错误:

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ValueError: Key name may not begin with an underscore
fatal: [issacs_box]: FAILED! => {"changed": false, "module_stderr": "Traceback (most recent call last):n  File "<stdin>", line 113, in <module>n  File "<stdin>", line 105, in _ansiballz_mainn  File "<stdin>", line 48, in invoke_modulen  File "/usr/lib/python3.5/imp.py", line 234, in load_modulen    return load_source(name, filename, file)n  File "/usr/lib/python3.5/imp.py", line 170, in load_sourcen    module = _exec(spec, sys.modules[name])n  File "<frozen importlib._bootstrap>", line 626, in _execn  File "<frozen importlib._bootstrap_external>", line 673, in exec_modulen  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removedn  File "/tmp/ansible_command_payload_hc3z4iej/__main__.py", line 292, in <module>n  File "/tmp/ansible_command_payload_hc3z4iej/__main__.py", line 199, in mainn  File "/tmp/ansible_command_payload_hc3z4iej/ansible_command_payload.zip/ansible/module_utils/basic.py", line 901, in __init__n  File "/tmp/ansible_command_payload_hc3z4iej/ansible_command_payload.zip/ansible/module_utils/basic.py", line 2243, in _log_invocationn  File "/tmp/ansible_command_payload_hc3z4iej/ansible_command_payload.zip/ansible/module_utils/basic.py", line 2201, in logn  File "systemd/_journal.pyx", line 68, in systemd._journal.sendn  File "systemd/_journal.pyx", line 32, in systemd._journal._sendnValueError: Key name may not begin with an underscoren", "module_stdout": "", "msg": "MODULE FAILUREnSee stdout/stderr for the exact error", "rc": 1}

我安装了错误的 PYPI 软件包。巧合的是,有一个名为systemd(版本0.16.1(的软件包,它与官方的systemd-python(版本234(软件包不同。运行pip3 uninstall systemd然后pip3 install systemd-python --user解决了问题。

似乎是一个奇怪的 Ansible 错误。您使用的是哪个版本?您可以尝试降级和/或升级版本吗?如果这可以修复此错误,请通知 Ansible 开发人员并在其存储库中创建问题。

否则,尝试更新和/或降级您的 Python 版本。可能是这个文件有问题/usr/lib/python3.5/imp.py

最新更新