1

因此,我试图从 /tmp 目录中获取事实,以获取是否已安装大小的结果以及权限文件。所以我使用了 find 模块,它给了我结果,但不是我要找的。例如:如果我的临时目录是 50gb,权限是 777,结果应该会显示目录的名称、挂载的大小和权限代码。所以我想要的是显示临时目录文件夹的完整大小,而不是每个信息文件。

- name: "get the facts"
  find:
    path: /tmp
    file_type: directory
    recurse: no
    size: 50g
  register: find_result
- name: "print the result"
  debug: var=find_result
4

1 回答 1

1

Q:获取大小、是否挂载、权限的结果。

A:使用stat获取大小和权限。变量ansible_mounts是挂载点的列表。比如这部剧

- hosts: localhost
  gather_facts: True
  vars:
    my_dir: /mnt
  tasks:
    - stat:
        path: "{{ my_dir }}"
      register: result
    - debug:
        msg: "size:{{ result.stat.size }} mode:{{ result.stat.mode }}"
    - debug:
        msg: "{{ my_dir }} is mount-point"
      when: my_dir in ansible_mounts|json_query('[].mount')
    - debug:
        msg: "{{ my_dir }} is not mount-point"
      when: my_dir not in ansible_mounts|json_query('[].mount')

"msg": "size:32768 mode:0755"
"msg": "/mnt is mount-point"
skipping: [localhost]

笔记

  • ansible_mounts如果gather_facts设置了变量, Ansible 将创建该变量True
于 2019-09-18T06:18:27.963 回答