gpt4 book ai didi

ansible - 当ansible查找失败时如何回退到默认值?

转载 作者:行者123 更新时间:2023-12-04 19:31:57 25 4
gpt4 key购买 nike

我有点惊讶地发现他的代码失败并出现 IOError 异常,而不是默认省略该值。

#!/usr/bin/env ansible-playbook -i localhost,
---
- hosts: localhost
tasks:
- debug: msg="{{ lookup('ini', 'foo section=DEFAULT file=missing-file.conf') | default(omit) }}"

如何在不引发异常的情况下加载值?

请注意,查找模块支持默认值参数,但这对我来说没用,因为它只有在可以打开文件时才有效。

我需要一个默认值,即使它无法打开文件。

最佳答案

据我所知,Jinja2 不幸地不支持任何 try/catch 机制。

因此,您要么将 ini 查找插件/文件问题修补到 Ansible 团队,要么使用这个丑陋的解决方法:

---
- hosts: localhost
gather_facts: no
tasks:
- debug: msg="{{ lookup('first_found', dict(files=['test-ini.conf'], skip=true)) | ternary(lookup('ini', 'foo section=DEFAULT file=test-ini.conf'), omit) }}"

在此示例中 first_found如果文件存在则查找返回文件名,否则返回空列表。如果文件存在, ternary过滤电话 ini查找,否则 omit返回占位符。

关于ansible - 当ansible查找失败时如何回退到默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212179/

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