ansible - 是否有等效于查找但在目标主机而不是本地执行的?

标签 ansible ansible-playbook properties-file

在 Ansible 中,当我需要从 Java 属性文件 ( .properties ) 读取属性时,我会执行以下操作:

- name: Read properties
  set_fact:
    myProp1: {{ lookup('ini', 'myProp1 type=properties file=/path/to/file.properties }} 
    myProp2: {{ lookup('ini', 'myProp2 type=properties file=/path/to/file.properties }}

但是,如 Ansible documentation说:

Lookups occur on the local computer, not on the remote computer.



如果属性文件位于远程目标主机中,我该怎么做? 我不能使用 include_vars,因为我的属性文件具有 Java 属性文件格式。

最佳答案

正如您所观察到的,lookup是本地的。我使用的一种可能的解决方案可能不适用于所有情况是在本地获取它然后调用查找。请务必阅读 fetch module在尝试之前:

- fetch: 
    src: /path/to/file.properties
    dest: /tmp/file.properties
    flat: yes

- name: Read properties
  set_fact:
    myProp1: {{ lookup('ini', 'myProp1 type=properties file=/tmp/file.properties }} 
    myProp2: {{ lookup('ini', 'myProp2 type=properties file=/tmp/file.properties }}

注意 : 这只是一种解决方法,而不是解决方案。

关于ansible - 是否有等效于查找但在目标主机而不是本地执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41400162/

相关文章:

Ansible 模块仅在文件不存在时才创建文件并写入一些数据

ansible - 如何让 Ansible Playbook 跳过某个角色?

ansible - 如何访问从 cli 传递的所有 ansible extra-vars 的列表? (变量的变量)

javascript - 如何从项目目录中读取javascript中的属性文件?

java - 如何在spring boot属性文件中转义 "@"

Ansible - 访问库存别名

git - ansible:git 模块挂起

Ansible 文本文件繁忙错误

ansible - 在角色任务中包含变量

java - tomcat 库中的 jar 在我的 webapp 中看不到属性文件