我写了这么一个yml,目的就是批量从主机复制文件到各个节点,这里的app_name是变量。

本来很简单,但是我执行了一次之后,再执行一次,就报了这样的错误

反正就是没有权限了,真是怪哉,去一个节点的这个位置查看,才发现权限乱了,怎么owner的r权限都没了?人工干预后,才停止报错,再执行一遍,又报错了

我才怀疑到是mode有问题,这里mode 755是不对的!必须是0755!
看了官方说明,才恍然大悟。执行ansible-doc -s copy 有这么一段

意思就是,
目标文件或目录的权限。mode实际上是八进制数。您必须添加前导零,以便Ansible
的YAML解析器知道它是一个八进制数,所以必须是0755,而不是755。或者加个引号也
行,比如'755',以便Ansible收到字符串,可以自行将字符串转换为数字。
在使用Ansible执行.yml文件进行批量文件复制时遇到权限错误,由于对mode参数理解不准确,误用755而非0755导致。经过官方文档确认,mode需以八进制形式0755指定,或者使用引号包裹字符串'755'。人工修复文件权限后,问题暂时解决,但再次执行任务时仍然出错,揭示了Ansible模式设置的重要性。
1363

被折叠的 条评论
为什么被折叠?



