我有一个默认的目标 Linux 节点umask=0077
。当我运行剧本时
- name: Create folder for app
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: app_user
mode: 0755
with_items:
- "/opt/app/folder1/bin"
- "/etc/program/folder2"
参数“mode”仅适用于最后一个文件夹(bin
和folder2
)。根据 umask,所有父目录都具有严格权限。
如何设置父目录所需的权限(不是全部/opt
或/etc
仅针对链):
/opt
,,,,/opt/app
/opt/app/folder1
/opt/app/folder1/bin
/etc
,,/etc/program
/etc/program/folder2
问:“更改所有中间父文件夹的权限。”
简短的回答:当所有子目录都存在时,模块文件不知道从哪里开始更改权限。
详细信息:例如,给定路径,声明要开始更改权限的深度。在本例中, depth=1是根目录,depth=2是/tmp9
创建一个循环文件,逐步更改子目录
循环中包含此任务
鉴于下面的树,该任务是幂等的
如果你改变模式
该任务改变权限
完整测试剧本的示例
模块文件按预期工作。引用:
例如,给定空目录
这出戏
创建树
,但改变模式
仅更改最后一个子目录的权限