Я работаю над динамической передачей параметров / переменных роли ansible, читая их из файла JSON.
Рассмотрим следующий вызов роли (с дополнительными параметрами, такими как телефон, адрес, электронная почта , город)
- name: Ansible role | Create
include_role:
name: ansible-role-create-user
vars:
persons:
- name: "john"
phone:
- name: "home"
number: 9999
- name: "mobile"
number: "9898"
- name: Ansible role | Create
include_role:
name: ansible-role-create-user
vars:
persons:
- name: "Doe"
email: "johndoe@home.com"
city: "Skyland"
Указанный выше код - это два варианта вызова роли. С его необязательными параметрами я пытаюсь прочитать эти данные из JSON и передать их роли
JSON, например: для вызова 1:
{
"name": "John",
"phone":
{
{"name": "home", number: "9999"},
{"name": "mobile", number: "9898"}
}
}
для вызова 2:
{
"name": "Doe",
"email": "johndoe@home.com",
"city": "skyland"
}
Как было сказано ранее, я хотел бы прочитать примеры JSON файлов и динамически передавать их в качестве параметров роли. Пробовали читать файл в регистр и отправлять переменную в роль, но я столкнулся с ошибкой
{"msg" "" объект unicode "не имеет атрибута" name '"}
пример того, как я его отправляю
- name: cat json to file
shell: cat jsonfile.json
register: register_with_json
- name: Ansible role | Create
include_role:
name: ansible-role-create-user
vars: "{{ register_with_json.stdout | from_json }}"