Ansible

使用 ad-hoc 命令的 Ansible 過濾器

  • October 19, 2021

如何使用 ad-hoc 命令過濾nocache塊或塊?free我試過ansible centos1 -m setup -a 'filter=ansible_memory_mb.nocache'了,但沒有過濾掉。

ansible centos1 -m setup -a 'filter=ansible_memory_mb'
centos1 | SUCCESS => {
   "ansible_facts": {
       "ansible_memory_mb": {
           "nocache": {
               "free": 11808,
               "used": 926
           },
           "real": {
               "free": 10686,
               "total": 12734,
               "used": 2048
           },
           "swap": {
               "cached": 0,
               "free": 4096,
               "total": 4096,
               "used": 0
           }
       },
       "discovered_interpreter_python": "/usr/libexec/platform-python"
   },
   "changed": false
}

你不能。正如文件setup所說,“過濾器選項僅過濾 ansible_facts 下的第一級子鍵。”

這有點亂,但你可以..

我正在對我的 localhost 執行我的 ansible,因此您必須稍微修改路徑,並替換localhost

ANSIBLE_LOAD_CALLBACK_PLUGINS=true ANSIBLE_STDOUT_CALLBACK=json ansible localhost -m setup | jq .plays[].tasks[].hosts.localhost.ansible_facts.ansible_memory_mb.nocache

輸出:

{
 "free": 11987,
 "used": 703
}

引用自:https://serverfault.com/questions/1080730