2016-12-30 13 views
1

В анзибль, когда мне нужно читать свойства из файла свойств Java (.properties), я что-то вроде:Есть ли эквивалент Lookups, но выполняется в целевом хосте вместо локального?

- 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 происходит на локальном компьютере , а не на удаленном компьютере.

Как это сделать, если файл свойств находится на удаленном целевом хосте? Я не могу использовать include_vars, так как мой файл свойств имеет формат файла свойств Java.

+1

Если свойства имеют решающее значение для выполняемых задач, не должны ли они находиться на вашем контрольном узле и перенаправлены на целевой/удаленный, а не наоборот? –

ответ

1

Как вы заметили, 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 }} 

ВНИМАНИЕ: Это только временное решение, а не решение.