Can you please show where elb is set?

On Thu, Oct 16, 2014 at 5:06 PM, Matthew Morgan <[email protected]> wrote:

> Not sure if I'm doing this wrong or not, so I figured I'd ask.
>
> I have a playbook to apply a role, but the role has a conditional.  If the
> conditional evaluates to false, the role should be skipped.
> # service.yml
> ---
> - name: Create EC2 Instances
>   gather_facts: False
>   hosts: local
>   vars_files:
>     - vars/defaults.yml
>     - vars/{{deploy_env}}.yml
>     - vars/{{region}}.yml
>     - vars/{{service}}.yml
>   roles:
>     - ec2-box
>     - { role: ec2-elb, when: elb }
>
>
> In this case elb is set to false, so all the tasks in the ec2-elb role
> should be skipped.
>
> However, I also run the playbook using tags.
>
> ansible-playbook -vvvv -i hosts service.yml --tags configure,start -e
> service=myservice
>
> And all of the tasks in ec2-elb have tags assigned:
>
> # roles/ec2-elb/tasks/main.yml
> ---
> - name: Create ELB
>   local_action:
>     module: ec2_elb_lb
>     name: "{{deploy_env}}-{{service}}"
>     state: present
>     cross_az_load_balancing: yes
>     security_group_ids: "{{sg_ids}}"
>     region: "{{region}}"
>     subnets:
>       - {{public_vpc_subnet_a}}
>       - {{public_vpc_subnet_a}}
>       - {{public_vpc_subnet_a}}
>     listeners:
>       - protocol: https
>         load_balancer_port: 443
>         instance_protocol: http
>         instance_port: "{{service_port}}"
>         ssl_certificate_id: "{{ssl_cert_arn}}"
>     health_check:
>         ping_protocol: http
>         ping_port: 6990
>         ping_path: "/1.0/status"
>         response_timeout: 5
>         interval: 10
>         unhealthy_threshold: 2
>         healthy_threshold: 2
>   register: elb
>   tags:
>     - configure
>     - start
>     - stop
>     - restart
>
> - name: Wait Until ELB Responds
>   local_action:
>     module: wait_for
>     host: "{{elb.elb.dns_name}}"
>     port: 443
>     timeout: 300
>   tags:
>     - start
>     - configure
>     - restart
>
>
> Given this approach, I would expect that if elb evalutates to False or
> undefined, the ec2-elb role would be skipped.
>
> Unfortunately, It seems the tasks within the ec2-elb role still attempt to
> execute based off the tags:
>
> TASK: [ec2-elb | Create ELB]
> **************************************************
> skipping: [localhost -> 127.0.0.1]
>
> TASK: [ec2-elb | Wait Until ELB Responds]
> *************************************
> fatal: [localhost -> 127.0.0.1] => error while evaluating conditional:
> {u'skipped': True, u'changed': False}
>
> FATAL: all hosts have already failed -- aborting
>
> PLAY RECAP
> ********************************************************************
>            to retry, use: --limit @/home/mmorgan/service.retry
>
> localhost                  : ok=5    changed=1    unreachable=1
>  failed=0
>
> Am I doing something wrong here, or is this a bug?
>
> Thanks!
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/9817e427-0d4d-4732-9e1f-0022396d41a8%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/9817e427-0d4d-4732-9e1f-0022396d41a8%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CA%2BnsWgzKztY%2BLFM1DcW75MmFJBo2ngeQAiOBRtrU-opoOH2PzQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to