Ansible 和硬件检查

2024-05-06

我必须使用 ansible 检查 Linux 机器上的不同硬件和配置元素,我完全不确定如何做到这一点(RAM、磁盘空间、DNS、CPU...),我知道我几乎可以找到我想要的所有事实都在 ansible 中,但我不明白如何使用它。

例如,我必须检查 RAM 量是否至少为 4GB,如果不是则发出警报,所以我尝试了很多方法,但......没有任何效果。

这是我尝试过的示例。

 - hosts: client
   remote_user: user

  tasks:
      - debug: var=ansible_memory_mb
      - debug: msg="total RAM is {{ ansible_memory_mb.real.total }}"
      - fail: msg="not enough RAM"t
      - when: {{ ansible_memory_mb.real.total }} < 4096

你能告诉我它是如何运作的吗?也许有更好的方法可以使用 Ansible 来做我想做的事情?

谢谢您的回答。


您发布的代码片段有一些问题。

  • 你的缩进已关闭。tasks需要与以下缩进级别相同hosts.

  • The when条件需要成为fail任务块,而不是单独的列表项。

  • 一般来说,您不需要使用{{ ... }} in a when条件下,整个表达式将被视为 Jinja 模板。

尝试这个:

- hosts: client
  remote_user: user
  tasks:
    - debug: var=ansible_memory_mb
    - debug: msg="total RAM is {{ ansible_memory_mb.real.total }}"
    - fail: msg="not enough RAM"
      when: ansible_memory_mb.real.total < 4096

您还可以使用assert module https://docs.ansible.com/ansible/latest/collections/ansible/builtin/assert_module.html检查条件或条件列表。

- assert:
    that:
      - ansible_memory_mb.real.total >= 4096
      - some other condition
      - ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansible 和硬件检查 的相关文章

随机推荐