У меня есть файл JSON с информацией о пользователе, с помощью которого я хочу создать пользователя. Все работает нормально, если все в формате JSON - простой текст. Однако я хочу сохранить пароль в хранилище Ansible и прочитать его оттуда в моем JSON. Однако, когда я загружаю файл, переменная не заменяется паролем. Я могу напечатать переменную пароля, которая напечатала пароль в виде простого текста.
Мне нужно предоставить данные пользователя в виде объекта JSON одному из API, который создает пользователя с этой информацией. Мой пароль в хранилище. У меня есть переменная с хэш-ответом для этого пароля. Мой файл JSON выглядит следующим образом.
{"Users":
[
{
"databaseName" : "admin",
"roles" : [ {
"databaseName" : "admin",
"roleName" : "readAnyDatabase"
} ],
"username" : "AnsibleReadUser",
"password" : "{{ apikey }}"
},
{
"databaseName" : "admin",
"roles" : [ {
"databaseName" : "admin",
"roleName" : "readWriteAnyDatabase"
} ],
"username" : "AnsibleReadWriteUser",
"password" : "{{ apikey }}"
}
]
}
Вот мое задание по загрузке файла JSON.
- name: Load Input files
set_fact:
userinfo_json: "{{ lookup('file', 'UserDetails.json') | from_json }}"
Когда я печатаю содержимое 'userinfo_json', переменная не подставляется.
"msg": "UserDetails JSON: {'Users': [{'databaseName': 'admin', 'roles': [{'databaseName': 'admin', 'roleName': 'readAnyDatabase'}], 'username': 'AnsibleReadUser', 'password': '{{ apikey }}'}, {'databaseName': 'admin', 'roles': [{'databaseName': 'admin', 'roleName': 'readWriteAnyDatabase'}], 'username': 'AnsibleReadWriteUser', 'password': '{{ apikey }}'}]}"
}
Я хочу заменить {{apikey}} 'на значение переменной.
{"Users":
[
{
"databaseName" : "admin",
"roles" : [ {
"databaseName" : "admin",
"roleName" : "readAnyDatabase"
} ],
"username" : "AnsibleReadUser",
"password" : "Password"
},
{
"databaseName" : "admin",
"roles" : [ {
"databaseName" : "admin",
"roleName" : "readWriteAnyDatabase"
} ],
"username" : "AnsibleReadWriteUser",
"password" : "Password"
}
]
}