ansible的copy模块的权限的坑

在使用Ansible执行.yml文件进行批量文件复制时遇到权限错误,由于对mode参数理解不准确,误用755而非0755导致。经过官方文档确认,mode需以八进制形式0755指定,或者使用引号包裹字符串'755'。人工修复文件权限后,问题暂时解决,但再次执行任务时仍然出错,揭示了Ansible模式设置的重要性。

我写了这么一个yml,目的就是批量从主机复制文件到各个节点,这里的app_name是变量。
在这里插入图片描述
本来很简单,但是我执行了一次之后,再执行一次,就报了这样的错误
在这里插入图片描述
反正就是没有权限了,真是怪哉,去一个节点的这个位置查看,才发现权限乱了,怎么owner的r权限都没了?人工干预后,才停止报错,再执行一遍,又报错了
在这里插入图片描述
我才怀疑到是mode有问题,这里mode 755是不对的!必须是0755!
看了官方说明,才恍然大悟。执行ansible-doc -s copy 有这么一段
在这里插入图片描述
意思就是,

目标文件或目录的权限。mode实际上是八进制数。您必须添加前导零,以便Ansible
的YAML解析器知道它是一个八进制数,所以必须是0755,而不是755。或者加个引号也
行,比如'755',以便Ansible收到字符串,可以自行将字符串转换为数字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值