如何获取使用ansible已安装或未安装的目录的信息?

时间:2019-09-17 19:38:38

标签: ansible mounted-volumes

因此,我试图从/ 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

1 个答案:

答案 0 :(得分: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