首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定义多个目录,以适当的方式维护特定于目录的属性?

如何定义多个目录,以适当的方式维护特定于目录的属性?
EN

Stack Overflow用户
提问于 2019-05-02 20:07:05
回答 1查看 27关注 0票数 0

以以下内容为例:

代码语言:javascript
运行
复制
    - name: setup jitsi-meet volumes (0/5)
      file:
        path: /srv/jitsi-meet/.jitsi-meet-cfg
        state: directory
        owner: root
        group: root
        mode: 0755

    - name: setup jitsi-meet volumes (1/5)
      file:
        path: /srv/jitsi-meet/.jitsi-meet-cfg/web
        state: directory
        owner: 2000
        group: 2000
        mode: 0644

    - name: setup jitsi-meet volumes (2/5)
      file:
        path: /srv/jitsi-meet/.jitsi-meet-cfg/prosody
        state: directory
        owner: root
        group: root
        mode: 0600

在ansible中,有没有一种适当的方法,既可以将这三个独立的任务简化为一个单独的任务,又可以保持修改每条路径的所有者、组和模式的可能性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-02 21:18:09

一种选择是循环文件列表。

代码语言:javascript
运行
复制
vars:
  my_files_dir: /srv/jitsi-meet/.jitsi-meet-cfg
  my_files:
    - path: "{{ my_files_dir }}"
      state: directory
      owner: "root"
      group: "root"
      mode: "0755"
    - path: "{{ my_files_dir }}/web"
      state: directory
      owner: "2000"
      group: "2000"
      mode: "0644"
    - path: "{{ my_files_dir }}/prosody"
      state: directory
      owner: "root"
      group: "root"
      mode: "0600"
tasks:
  - file:
      path: "{{ item.path }}"
      state: "{{ item.state }}"
      owner: "{{ item.owner }}"
      group: "{{ item.group }}"
      mode: "{{ item.mode }}"
    loop: "{{ my_files }}"

这可以通过参数的默认值进一步简化

代码语言:javascript
运行
复制
vars:
  my_files_dir: /srv/jitsi-meet/.jitsi-meet-cfg
  my_files:
    - path: "{{ my_files_dir }}"
    - path: "{{ my_files_dir }}/web"
      owner: "2000"
      group: "2000"
      mode: "0644"
    - path: "{{ my_files_dir }}/prosody"
      mode: "0600"
tasks:
  - file:
      path: "{{ item.path }}"
      state: "{{ item.state|default('directory') }}"
      owner: "{{ item.owner|default('root') }}"
      group: "{{ item.group|default('root') }}"
      mode: "{{ item.mode|default('0755') }}"
    loop: "{{ my_files }}"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55952114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档