gpt4 book ai didi

ansible - 当 ansible_facts 中的特定项目不可用时如何编写自定义消息(比如磁盘 sdb 不可用)

转载 作者:行者123 更新时间:2023-12-04 10:57:48 26 4
gpt4 key购买 nike

我正在从 ansible_facts 收集一些输出并借助复制模块(内容和目标)将它们写入远程服务器上的文件
如果某些项目在服务器上不可用(例如磁盘 sdb 在服务器上不存在),我需要写为 NONE。

如果磁盘 sdb 怎么写 NONE没有找到?

我的剧本如下

- copy:
content: |
Memory = {{ ansible_memtotal_mb }}
Size of disk sda = {{ ansible_devices.sda.size }}
dest: /tmp/test

但是如果服务器上的磁盘 sdb 不可用,如何检查和编写如下自定义消息
Size of disk sdb =  NONE

最佳答案

使用default筛选。例如

- copy:
content: |
Memory = {{ ansible_memtotal_mb }}
Size of disk sda = {{ ansible_devices.sda.size }}
Size of disk sdb = {{ ansible_devices.sdb.size|default('NONE') }}
dest: /tmp/test

一般情况下,Jinja2 条件 if-else-endif也应该做这项工作
- copy:
content: |
Memory = {{ ansible_memtotal_mb }}
Size of disk sda = {{ ansible_devices.sda.size }}
{% if ansible_devices.sdb.size is defined %}
Size of disk sdb = {{ ansible_devices.sdb.size }}
{% else %}
Size of disk sdb = NONE
{% endif %}
dest: /tmp/test

'if' statement in jinja2 template .

关于ansible - 当 ansible_facts 中的特定项目不可用时如何编写自定义消息(比如磁盘 sdb 不可用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59074185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com