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
Другие вопросы по тегам