Я пытаюсь создать загружаемую книгу для динамического поиска любых экземпляров, соответствующих тегам AWS, создать ELB, а затем добавить к нему экземпляры. До сих пор мне удалось создать их для одного набора тегов и одного ELB за раз.Экземпляры несвязанного регистра и создания ELB
Я пытаюсь выяснить, какой способ можно запустить для любого количества тегов, не указав мои переменные function
и release
спереди.
Например, переменные function
и release
будут определены в файле vars примерно так.
function:
- api
- webapp
- mysql
release:
- prod
- stage
- dev
My playbook выглядит так. Я изо всех сил пытаюсь найти способ зацикливания всей пьесы через список переменных. Если я добавлю with_items
к первой задаче, он будет перебирать всю эту задачу, прежде чем переходить на следующую, которая не выполняет то, что я хочу.
- ec2_remote_facts:
filters:
instance-state-name: running
"tag:Function": "{{ function }}"
"tag:Release": "{{ release }}"
region: us-east-1
register: ec2instance
- local_action:
module: ec2_elb_lb
name: "{{ function }}-{{ release }}"
state: present
instance_ids: "{{ item.id }}"
purge_instance_ids: true
region: us-east-1
subnets:
- subnet-1
- subnet-2
listeners:
- protocol: https
load_balancer_port: 443
instance_port: 80
ssl_certificate_id: "{{ ssl_certificate_id }}"
health_check:
ping_protocol: http
ping_port: 80
ping_path: "/status"
response_timeout: 3
interval: 5
unhealthy_threshold: 2
healthy_threshold: 2
access_logs:
interval: 5
s3_location: "{{ function }}-{{ release }}-elb"
s3_prefix: "logs"
with_items: ec2instance.instances
Спасибо за ответ. Кажется, что это хорошо работает, чтобы заставить цикл работать, но я не смог заставить его работать с более чем одним набором {{function}} и {{release}} одновременно. Случается, что {{function}} - {{release}} выходит как одно большое значение, например «msg»: «[u'api, u'webapp», u'mysql] - [u'prod ', u'stage ', u'dev'] «Кроме того, я надеюсь иметь. api-prod, api-stage, api-dev, webapp-prod, webapp-stage ... и т. д. Как вы думаете, как это сделать? – tweeks200
@ tweeks200 очень странная вещь ... Я обновил свой ответ с помощью кода, который я тестировал. –
@ tweeks200 нашел ошибку, почему мои шаблонные циклы не работали, обновил ответ еще раз :) разные имена для параметра include ('function') и array (' functions') являются ключом! –