首页> 疑难解答

如何使用Ansible检查特定文件系统的使用情况

withpy 2021-06-21

简介我需要创建一个非常类似于此处所述的检查:检查磁盘空间以检查作为变量提到的挂载的问题除了我只需要指定的路径(例如/ var)。 {{...

我需要创建一个非常类似于此处解释的检查:Ansible to check diskspace for mounts mentioned as variable

除了我只需要指定的路径(例如/ var)。

{{ ansible_mounts }}是一个字典数组,每个字典都包含变量mount,它是实际的路径。只有当mount等于某个值时,我才需要在{{ ansible_mounts }}中为所有项执行循环检查。

我想在伪代码中实现的示例:

foreach (mountpoint in ansible_mounts)
{
    if (mountpoint["mount"] == "/var" || mountpoint["mount"] == "/opt")
    {
        // do the check
    }
}

我怎样才能在Jinja / Ansible中做到这一点?此代码检查每个项目。我只需要为明确指定的路径过滤它:

- name: Ensure that free space on the tested volume is greater than 15%
  assert:
    that:
      - mount.size_available > mount.size_total|float * 0.15
    msg: Disk space has reached 85% threshold
  vars:
    mount: "{{ ansible_mounts | selectattr('mount','equalto',item.mount) | list | first }}"
  with_items:
    - "{{ ansible_mounts }}"
0
投票

例如,你需要添加一个when条件

vars:
  my_mounts:
    - '/var/log'
    - '/var/logs/foo'

tasks:
- name: do the check
  when: item.mount in my_mounts
  with_items: '{{ ansible_mounts }}'

上一篇:处理状态中的动态选择组件

下一篇:基于Django类的视图通用接受列表

相关文章