需要使用 Ansible 同步模块一起更改文件夹 + 文件的权限
Need permissions changed of a folder + files together using Ansible synchronize module
我允许用户选择输入 3 位数字来设置正在传输的文件或文件夹的权限说 -e myperm: 775
我在提供 rsync_opts: --chmod:F775
(同步模块)的地方使用 ansible 将目标上传输的 file/folder 的权限更改为 775
- name: sync file
synchronize:
src: /tmp/file.py
dest: /home/myuser/file.py
mode: push
rsync_opts:
- "--chmod=F0{{ myperm }}"
以上适用于文件;但是,当 src: /tmp/folder
时,传输文件夹同样不起作用
我在 ansible 中尝试了 --chmod=D0{{ myperm }},F0{{ myperm }}
但它转换为 --chmod=D0775 F0775
并给出了这个错误:
msg": "Unexpected remote arg: user@desthost:/tmp/folder\nrsync error: syntax or usage error (code 1) at main.c(1344) [sender=3.1.2]\n", "rc": 1}
您能否建议 rsync_opts
使用变量 myperm
来更改文件和文件夹的权限?
任何其他解决方案也可以。
当模块生成 rsync 命令行时,解析逗号分隔的参数似乎有问题,但是,由于 rsync 允许多个 chmod 选项,您可以将您的任务重写为:
[..]
rsync_opts:
- "--chmod=F0{{ myperm }}"
- "--chmod=D0{{ myperm }}"
我允许用户选择输入 3 位数字来设置正在传输的文件或文件夹的权限说 -e myperm: 775
我在提供 rsync_opts: --chmod:F775
(同步模块)的地方使用 ansible 将目标上传输的 file/folder 的权限更改为 775
- name: sync file
synchronize:
src: /tmp/file.py
dest: /home/myuser/file.py
mode: push
rsync_opts:
- "--chmod=F0{{ myperm }}"
以上适用于文件;但是,当 src: /tmp/folder
我在 ansible 中尝试了 --chmod=D0{{ myperm }},F0{{ myperm }}
但它转换为 --chmod=D0775 F0775
并给出了这个错误:
msg": "Unexpected remote arg: user@desthost:/tmp/folder\nrsync error: syntax or usage error (code 1) at main.c(1344) [sender=3.1.2]\n", "rc": 1}
您能否建议 rsync_opts
使用变量 myperm
来更改文件和文件夹的权限?
任何其他解决方案也可以。
当模块生成 rsync 命令行时,解析逗号分隔的参数似乎有问题,但是,由于 rsync 允许多个 chmod 选项,您可以将您的任务重写为:
[..]
rsync_opts:
- "--chmod=F0{{ myperm }}"
- "--chmod=D0{{ myperm }}"