Ansible: Как вы заполняете переменную значением шаблона / подстроки в строке в удаленном файле?
У меня есть удаленный сервер с файлом на нем. Одна строка в этом файле следующая:
authorizationToken=<hash or empty string>
Я хотел бы установить переменную в роли равной значению того, что находится после знака равенства в этой строке, если что-нибудь (это может быть хеш или пустая строка).
Какой наименее ужасный способ сделать это?
2 ответа
Решение
Константин связал вас с решением с использованием пользовательских фактов, но вы также можете получить то же значение, используя простую задачу, такую как:
- name: get authorizationToken
command: >
awk -F= '$1 == "authorizationToken" {print $2}' /path/to/configfile
register: token
Теперь значение доступно в последующих задачах как token.stdout
,
После некоторой попытки сделать это "правильным" способом, в конце концов путь наименьшего сопротивления использовал сценарий оболочки:
- name: Record autorization Token
shell: "cat {{ buildagent_dir }}/conf/buildAgent.properties 2>/dev/null | grep authorizationToken | cut -d '=' -f 2"
register: token