Во-первых, я новичок от ie до Ansible и DevOps в целом. Во-вторых, спасибо всем тем, кто внес свой вклад в это сообщество, делая его полезным для обучения и помощи. Моя цель - создать новую переменную из двух переменных Dynami c. Учитывая, что новая переменная представляет собой полное доменное имя, мне нужно объединить эти две с помощью «.» (Точка / период) между ними.
У меня есть следующие полезные данные, входящие как JSON
{
"extra_vars": {
"operation": "add",
"target_subnet": "172.16.10.0",
"dns_name": "myserver",
"dns_domain": "itsadomain.com"
}
}
Я хочу, чтобы Ansible взял вышеуказанную информацию и создал переменную objectName. Затем objectName используется для создания URL-адреса серверной системы, чтобы, возможно, проверить, используется ли это objectName.
Мой последний вариант для этого конкретного раздела playbook выглядит следующим образом:
- set_fact: objectName = {{[dns_name].[dns_domain]}}
- name: show objectName
debug: msg={{ objectName }
И я получаю следующий ответ:
}
TASK [set_fact] ****************************************************************
task path: /var/lib/awx/projects/myproject/myplaybook.yml:42
fatal: [ipamapp.mydomain]: FAILED! => {
"msg": "template error while templating string: expected name or number. String: objectName = {{[dns_name].[dns_domain]}}"
}
Обратите внимание, что я взял две входящие переменные, поместив между ними «.». Я просмотрел и другие сообщения, такие как - 29276198, но я думаю, что мой немного отличается, поскольку у него две переменные Dynami c, соединенные с помощью точки «. ”Символ
Ожидаемый результат состоит в том, что я могу затем создать« myserver.itsadomain.com »для objectName и использовать его позже в следующей игре
- name: "Build my hostname search URL"
set_fact:
search_url_name: "https://ipamapp.mydomain/search.json?name={{objectName}}"
when:
- operation_converted == "add"
- process_request