【问题标题】:Ansible Copy Module FailsAnsible 复制模块失败
【发布时间】:2016-07-25 22:19:41
【问题描述】:

我正在尝试将“resolve.conf”文件从一台机器复制到另一台机器并覆盖旧的。此操作适用于 40 多台服务器中的 4 台以外的所有服务器...我收到一个错误,它无法替换文件,因为它是不允许的。我已将 Playbook 中与操作失败相关的内容粘贴在下方。

- hosts: all
  remote_user: root

...

  - name: Copy over the updated DNS configuration file
    copy: src=/etc/resolv.conf dest=/etc/resolv.conf

它为我提供了所有 4 台服务器的以下错误消息。

致命:[服务器名称]:失败! => {“更改”:假,“校验和”:“9925f1a81f849f373f860c3156d19edcd1c002f2”,“失败”:真,“味精”:“无法替换文件:/root/.ansible/tmp/ansible-tmp-1469481567.72-275811900408782/so​​urce到 /etc/resolv.conf: [Errno 1] Operation not allowed"}

我只是不明白问题可能出在哪里,因为我以 root 用户身份访问机器,并且 Playbook 在大多数服务器上都成功 - 许多服务器具有完全相同的配置和设置。例如,它在服务器“server-analytical1”上成功,但在服务器“server-analytical2”上失败。那么,有没有人知道为什么 Playbook 只会在少数服务器上失败,即使它们与其他成功的服务器相似或相同?

【问题讨论】:

    标签: copy ansible ansible-playbook


    【解决方案1】:

    是否在目标文件上设置了不可变位?如果是,请尝试 lsattr /etc/resolv.confchattr -i /etc/resolv.conf 取消设置。

    【讨论】:

    • 就是这样!不知道这些位最终是如何设置的,但它解决了我遇到的问题。谢谢!
    • 我见过一些生成 resolv.conf 的发行版设置,以进一步阻止对文件的手动黑客攻击(除了“不要编辑这个文件”cmets)。跨度>
    猜你喜欢
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    相关资源
    最近更新 更多