【问题标题】:Nsupdate module in ansible causes an erroransible中的nsupdate模块导致错误
【发布时间】:2021-06-29 14:43:36
【问题描述】:

当我尝试运行以下 .yml 角色时,我收到 nsupdate 错误。

我用的是centos7,机器运行bind。

当我使用原始 DNS 服务器或 ansible 主服务器进行 nsupdate 时,我可以更新记录,只有当我使用 nsupdate 模块时它不起作用,有什么帮助吗?太棒了!

tasks/main.yml

这是有相关代码的部分

- name: Add or modify ansible.example.org A to 192.168.1.1"
  community.general.nsupdate:
    server: "10.0.0.40"
    zone: "ben.com."
    record: "ansible"
    value: "192.168.1.1"
  when: ansible_eth1.ipv4.address == '10.0.0.40'

错误:

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: SyntaxError: invalid syntax
fatal: [10.0.0.40]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 10.0.0.40 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n  File \"/root/.ansible/tmp/ansible-tmp-1624977590.7-4712-16053022547656/AnsiballZ_nsupdate.py\", line 102, in <module>\r\n    _ansiballz_main()\r\n  File \"/root/.ansible/tmp/ansible-tmp-1624977590.7-4712-16053022547656/AnsiballZ_nsupdate.py\", line 94, in _ansiballz_main\r\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n  File \"/root/.ansible/tmp/ansible-tmp-1624977590.7-4712-16053022547656/AnsiballZ_nsupdate.py\", line 40, in invoke_module\r\n    runpy.run_module(mod_name='ansible_collections.community.general.plugins.modules.nsupdate', init_globals=None, run_name='__main__', alter_sys=True)\r\n  File \"/usr/lib64/python2.7/runpy.py\", line 176, in run_module\r\n    fname, loader, pkg_name)\r\n  File \"/usr/lib64/python2.7/runpy.py\", line 82, in _run_module_code\r\n    mod_name, mod_fname, mod_loader, pkg_name)\r\n  File \"/usr/lib64/python2.7/runpy.py\", line 72, in _run_code\r\n    exec code in run_globals\r\n  File \"/tmp/ansible_community.general.nsupdate_payload_xAhaGd/ansible_community.general.nsupdate_payload.zip/ansible_collections/community/general/plugins/modules/nsupdate.py\", line 189, in <module>\r\n  File \"build/bdist.linux-x86_64/egg/dns/update.py\", line 21, in <module>\r\n  File \"/usr/lib/python2.7/site-packages/dnspython-2.1.1.dev77+gf61a939-py2.7.egg/dns/message.py\", line 201\r\n    s.write(f';{name}\\n')\r\n                       ^\r\nSyntaxError: invalid syntax\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}

relevant line in traceback

  File "build/bdist.linux-x86_64/egg/dns/update.py", line 21, in <module>
  File "/usr/lib/python2.7/site-packages/dnspython-2.1.1.dev77+gf61a939-py2.7.egg/dns/message.py", line 201
    s.write(f';{name}\n')
                       ^
SyntaxError: invalid syntax

【问题讨论】:

  • 您正在 Python2 下运行 Python3 代码(f'...')部分,因此它不起作用并引发 SyntaxError。但除此之外,您的问题在这里与编程无关。您需要在 Ansible 上找到适当的帮助场所。
  • 关于两种与编程无关的编码语言的问题如何?这个网站上有很多ansible问题。如果可以的话,我很乐意帮助您解决此问题。
  • 您的问题是关于 Ansible 中的错误。 Ansible 不是一种编程语言,而是一种部署工具。存在其他离题问题的事实并不是添加另一个离题问题的理​​由。尽管您想获得帮助,但它并不授予您无视您所在网站规则的权利。

标签: module ansible dns bind named


【解决方案1】:

问题是它在主机上错误的解释器上运行,就像@Patrick 提到的那样。 通过像这样添加主机组变量来修复它:

[DNS_Master:vars]
ansible_python_interpreter=/usr/local/bin/python3.9

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多