Я использую динамический инвентарь ec2.
Все мои экземпляры ec2 помечены как их окружение.Так, например, tag:env = prod
или tag:env = test
Так что в моем динамическом инвентаре правильно установлены переменные ....
"ec2": [
"ip_10_1_1_1_ec2_internal",
"ip_10_1_1_2_ec2_internal",
"ip_10_1_1_3_ec2_internal",
"ip_10_1_1_4_ec2_internal",
"ip_10_1_1_5_ec2_internal",
"ip_10_1_1_6_ec2_internal",
"ip_10_1_1_7_ec2_internal"
],
...
"tag_env_mgmt": [
"ip_10_1_1_7_ec2_internal",
"ip_10_1_1_6_c2_internal",
"ip_10_1_1_5_ec2_internal"
],
"tag_env_prod": [
"ip_10_1_1_2_ec2_internal",
"ip_10_1_1_1_ec2_internal"
],
"tag_env_stage": [
"ip_10_1_1_3_ec2_internal",
"ip_10_1_1_4_ec2_internal"
],
Итак, теперь я хочу установить условияна основе определенных тегов. Вот тип условных обозначений playbook, который я хочу использовать, добавляя пользователей только в том случае, если тег «stage»:
---
- hosts: ec2
vars:
users:
- user1
- user2
tasks:
- name: "Create user accounts and add users to groups"
user:
name: "{{ item }}"
groups: "sudo"
with_items: "{{ users }}"
when: tag_env_stage is defined
Также пробовал так:
- name: "Create user accounts and add users to groups"
user:
name: "{{ item }}"
groups: "sudo"
with_items: "{{ users }}"
when: tag_env_stage
и это:
- name: "Create user accounts and add users to groups"
user:
name: "{{ item }}"
groups: "sudo"
with_items: "{{ users }}"
when: tag_env == stage
Воспроизведение не выполняется.Я получаю ошибки в виде:
ошибка при оценке условного (tag_env_stage):
Я проверил документацию и не увидел ничего торчащего из меня.
(https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html)
(https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html)