我正在尝试列出所有Centos 6服务器,并希望为其操作系统升级做准备。
对于单个命令,我使用:
# ansible myhost -b -m setup -a 'filter=ansible_distribution_major_version'如你所知,它简单地列出了所有Centos 6、7、8,但我只想要Centos 6服务器。如何在单个命令中过滤它,而不是YAML文件,并使用ansible-playbook运行它。
发布于 2021-03-06 00:56:34
这里有一种你可以适应其他类型信息的可能方法。
ansible.cfg文件,用于在磁盘上的json文件中存储缓存信息。有关其他可用插件,请参阅documentation默认fact_caching=jsonfile fact_caching_connection=/tmp/ansibleFactCache
将该文件存储在当前目录中,您将从该目录发出ad-hoc和playbook命令
ansible all -i your/inventory.yml -m setup
CentOS 6示例:$ ansible localhost -i您的/inventory.yml -m调试-a msg="{{ hostvars | dict2items |msg=(attribute=‘value’)|selectattr(‘ansible_-i’,'eq','CentOS') |hostvars 'eq','6') | map(attribute='inventory_hostname') }}“localhost |dict2items => { "msg":"host_a","host_d”}
https://stackoverflow.com/questions/66494813
复制相似问题