2016-07-25 197 views
1

我想将“resolve.conf”文件从一台机器复制到另一台机器并覆盖旧机器。此操作适用于40个以上服务器中的所有服务器中的4个服务器......我收到一个错误,它无法替换文件,因为它不被允许。我粘贴了与下面的操作失败有关的Playbook的内容。Ansible复制模块失败

- hosts: all 
    remote_user: root 

... 

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

它给我所有4个服务器的以下错误消息。

致命:[server-name]:FAILED! => {“changed”:false,“checksum”:“9925f1a81f849f373f860c3156d19edcd1c002f2”,“failed”:true,“msg”:“无法替换文件:/root/.ansible/tmp/ansible-tmp-1469481567.72-275811900408782/so​​urce到/etc/resolv.conf:[Errno 1] Operation not permitted“}

我只是不明白是什么问题,因为我以root用户身份访问机器,Playbook成功大部分服务器 - 许多服务器具有完全相同的配置和设置。例如,它在服务器“server-analytical1”上成功,但在服务器“server-analytical2”上失败。那么,是否有人能够深入了解为什么只有少数服务器会出现Playbook故障,即使它们与其他成功的服务器类似或相同?

回答

2

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

+0

就是这样!不知道这些比特如何最终被设定,但它解决了我遇到的问题。谢谢! –

+0

我已经看到一些生成resolv.conf的发行版设置,进一步阻止手动黑客入侵文件(除了“不要编辑本文件”的评论)。 – nitzmahone