Я борюсь с шаблоном, вытаскивающим инвентарные вары в шаблонах Ansible, пожалуйста, помогите.:)
Я настраиваю сервер мониторинга, и я хочу иметь возможность автоматически предоставлять серверы с помощью Ansible. Я борюсь с циклами в шаблоне, чтобы позволить мне это.
Мое полурабочее решение до сих пор находится в игровой книге, которая вызывает задание шаблона, которое у меня есть:
monitoringserver.yml
vars:
servers_to_monitor:
- {cname: web1, ip_address: 192.168.33.111}
- {cname: web2, ip_address: 192.168.33.112}
- {cname: db1, ip_address: 192.168.33.211}
- {cname: db2, ip_address: 192.168.33.212}
template.yml
all_hosts += [
{% for host in servers_to_monitor %}
"{{ host.cname }}{{ host.ip }}|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
{% endfor %}
]
Но это не идеально, поскольку я не могу определить другой IP-адрес для разных серверов, которые будут отслеживать. Как другие люди это сделали? Я уверен, что это должно быть тривиально, но мой мозг борется с синтаксисом.
Спасибо
Алан
edit: Чтобы прояснить полученный шаблон, выглядит примерно так:
all_hosts += [
"web1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"web2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
]
Я бы хотел, чтобы значения web1/web2/db1/db2 были разными в зависимости от того, использую ли я файл инвентаризации производства или файл инвентаризации разработки.