Я настраиваю полную среду с использованием доступной. По какой-то причине невозможно исключить значения переменных.ansible: Извлечь значение из регистровых переменных, чтобы использовать его в других играх в одном и том же playbook
Я использую анзибль 2.1.1.0
Вот пример полосы, что я пытаюсь сделать: Я зарегистрировал VPC с register: ec2_vpc
.
1. #This didn't works
- name: Add to host vars
add_host:
name: vpc_vars
groups: vpc_subnets
vpc_subnet_id: "{{ ec2_vpc.subnets[0].id }}"
vpcid: "{{ ec2_vpc.vpc_id }}"
- debug: var=vpc_subnet_id
- debug: var=vpcid
2. These works
- name: Record vpc id
debug: var=ec2_vpc.vpc_id
- name: Record subnet id
debug: var=ec2_vpc.subnets[0].id
Привел JSON моих выше полос:
TASK [debug] *******************************************************************
ok: [localhost] => {
"vpc_subnet_id": "VARIABLE IS NOT DEFINED!"
}
TASK [debug] *******************************************************************
ok: [localhost] => {
"vpcid": "VARIABLE IS NOT DEFINED!"
}
TASK [Record vpc id] ***********************************************************
ok: [localhost] => {
"ec2_vpc.vpc_id": "vpc-4sdh3832f"
}
TASK [Record subnet id] ********************************************************
ok: [localhost] => {
"ec2_vpc.subnets[0].id": "subnet-edfjdh3482"
}
Почему мой первый синтаксис не собирание значения вместо его дает VARIABLE IS NOT DEFINED!
Обновлен: Вот мой второй синтаксис описывает я правильно я сортировка значения из результата JSON зарегистрированной переменной. Но я хочу, чтобы он работал для моего первого синтаксиса, что означает, что я хочу добавить переменные хостов в динамические ресурсы. Чтобы я мог повторно использовать его в другом проигрывателе
Первый синтаксис не работает, потому что вы добавляете переменные в новый хост с именем 'vpc subnets' и именем группы' vpc_vars' (зачем?) ... Если вы запускаете последующие игры против группы 'vpc_vars', ваши переменные будут быть видимым. Я не понимаю, чего вы пытаетесь достичь со всем этим. –