ansible - 当文件可能不存在时,如何在ansible中使用查找('file')?

标签 ansible

我想在ansible控制节点上查找文件的内容 -

示例:

- hosts: all
  vars:
    somevar: "{{ lookup('file', playbook_dir + '/some/path' + inventory_hostname) }}"

如果文件不存在,我希望变量未定义或设置为默认值。但是,如果文件不存在,查找模块会抛出错误。处理此错误的正确方法是什么,以便我可以根据代码中是否存在 somevar 进行分支?

最佳答案

似乎从这篇原始文章到现在,此功能已添加到查找插件中。

对我来说它有效,我使用的是 2.8.5 版本:

https://docs.ansible.com/ansible/latest/plugins/lookup.html#using-lookup-plugins 2.6 版本中的新增功能。 您现在可以通过将 errors 设置为 ignore 来控制错误在所有查找插件中的行为方式,...

- hosts: all
  vars:
    somevar: "{{ lookup('file', playbook_dir + '/some/path' + inventory_hostname, errors='ignore') }}"

关于ansible - 当文件可能不存在时,如何在ansible中使用查找('file')?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039588/

相关文章:

linux - Ansible 剧本创建输出到日志文件

file - 如何使用远程系统上的 Ansible 任务 move/重命名文件

Ansible - 如果 undefined variable ,则使用默认值

ansible - 在没有 ansible.cfg 的情况下运行 Ansible 设置模块

python - 如何使用ansible正确升级pip?

git - 无法使用 Ansible 在本地系统上执行 "git clone"

json - Ansible azure_rm_deployment 引用来自 2 个位置的参数

amazon-ec2 - Ansible EC2 动态库存最低 IAM 策略

Ansible:检查列表,如果找到,则删除一个或多个项目

ansible - 使用检查模式时如何对 Ansible 模板任务运行验证?