Согласно документации, я должен иметь возможность зарегистрировать экземпляр EC2 с помощью elb_instance, но воспроизведение не удается с ELB Staging1 does not exist
. Для проверки работоспособности я пробовал использовать инструмент AWS CLI, но это не помогло с An error occurred (LoadBalancerNotFound) when calling the RegisterInstancesWithLoadBalancer operation: There is no ACTIVE Load Balancer named 'Staging1'
. Как поворот сюжета:
- Консоль AWS показывает ALB как «Активный»
elb_application_lb_facts
также перечисляет этоec2_elb_facts
не перечисляет его (он перечисляет только классические ELB, которые у меня есть)
Похоже, что балансировщики нагрузки приложений поддерживаются только в более новой версии api, и модуль или cli не предназначены для работы с ними. Однако я не могу найти явного упоминания о том, что они не должны работать. Мне также известно о elbv2
команде, но похоже, он не предлагает способ регистрации экземпляров в ELB.
Что мне здесь не хватает, ребята?
Ansible задача, которую я написал:
- name: Register instances in the ALB
local_action:
module: elb_instance
aws_access_key: "{{ aws_credentials.access_key_id }}"
aws_secret_key: "{{ aws_credentials.secret_access_key }}"
region: "{{ aws_region }}"
instance_id: "{{ item.instance_ids.0 }}"
ec2_elbs: "Staging1"
state: present
wait: yes
loop: "{{ new_instances.results }}"
альтернатива с aws
cli tool (тоже не работает):
- name: Register instance in ALB workaround
command: "aws elb register-instances-with-load-balancer --load-balancer-name Staging1 --instances {{ instance_ids | join(' ') }}"
environment:
AWS_REGION: "{{ aws_region }}"
AWS_ACCESS_KEY: "{{ aws_credentials.access_key_id }}"
AWS_SECRET_KEY: "{{ aws_credentials.secret_access_key }}"