我正在尝试将“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 台服务器的以下错误消息。
fatal: [server-name]: FAILED! => {"changed": false, "checksum": "9925f1a81f849f373f860c3156d19edcd1c002f2", "failed": true, "msg": "Could not replace file: /root/.ansible/tmp/ansible-tmp-1469481567.72-275811900408782/source to /etc/resolv.conf: [Errno 1] Operation not permitted"}
我只是不明白问题可能是什么,因为我以 root 用户身份访问计算机,并且 Playbook 在大多数服务器上都成功 - 许多服务器具有完全相同的配置和设置。例如,它在服务器“server-analytical1”上成功,但在服务器“server-analytical2”上失败。那么,有谁知道为什么 Playbook 仅在少数服务器上失败,即使它们与其他成功的服务器相似或相同?
最佳答案
目标文件上是否设置了不可变位?如果是的话,请尝试使用 lsattr/etc/resolv.conf 和 chattr -i/etc/resolv.conf 来取消设置。
关于copy - Ansible 复制模块失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578289/