Thanks for the suggestion Brian and senorsmile but I realized after
creating a task that ensures the tags exist before running the add_host
module I don't think this has anything to do with the api.

The add_host task is just adding the IP address of the instance to a group

TASK: [cep_aws | add hosts to fresh group] ************************************
creating host via 'add_host': hostname=172.20.16.148

but it bombs out

AttributeError: 'NoneType' object has no attribute 'add_group'

Any ideas what could be causing this?

Cheers

On Wed, Aug 19, 2015 at 7:15 AM, David Neudorfer <
[email protected]> wrote:

> Nevermind this should work.
>
> http://docs.ansible.com/ansible/playbooks_loops.html#do-until-loops
>
> On Wed, Aug 19, 2015 at 7:12 AM, David Neudorfer <
> [email protected]> wrote:
>
>> I'd love to use the wait_for module to ensure the tags exist before
>> moving to the next step but I don't see a way to run a command like:
>>
>> aws ec2 describe-instances \
>> --filter \
>> "Name=tag:ansible,Values=awsqa_helios_web" \
>> "Name=instance-state-code,Values=16" \
>> --query "Reservations[].Instances[].Tags[]"
>>
>> and wait for the module to register the expected output before moving on.
>>
>> Thanks for the help guys.
>>
>> On Fri, Aug 14, 2015 at 12:38 PM, Brian Coca <[email protected]> wrote:
>>
>>> The wait_for and/or pause modules can help you with this.
>>>
>>> On Fri, Aug 14, 2015 at 12:29 PM, senorsmile <[email protected]>
>>> wrote:
>>> > You didn't specify this in your description, but from your naming it is
>>> > clear you're using add_host after provisioning new aws nodes.  I don't
>>> > believe this is an Ansible issue but an AWS issue.  After creating the
>>> node,
>>> > it's takes a little while for the api to respond that it exists (my
>>> guess
>>> > any way).  You might be able to pause if anything in your ec2 task
>>> changes,
>>> > to give aws a minute to register the new vm.  See
>>> >
>>> > http://docs.ansible.com/ansible/pause_module.html
>>> >
>>> >
>>> > On Friday, August 14, 2015 at 7:06:45 AM UTC-7, David Neudorfer wrote:
>>> >>
>>> >> Issue Type:
>>> >> Bug Report
>>> >>
>>> >> Ansible Version:
>>> >> ansible 1.9.0.1
>>> >>   configured module search path = None
>>> >>
>>> >> Environment:
>>> >> CentOS release 6.6 (Final)
>>> >>
>>> >> Summary:
>>> >>
>>> >> Using the `add_host` module fails on the first run. When run a second
>>> time
>>> >> it works.
>>> >>
>>> >> Steps To Reproduce:
>>> >>
>>> >> - name: add hosts to fresh group
>>> >>
>>> >>   add_host: >
>>> >>
>>> >>     hostname={{ item.private_ip }}
>>> >>
>>> >>     groups=fresh
>>> >>   with_items: created.tagged_instances
>>> >>
>>> >>
>>> >> Expected Results:
>>> >>
>>> >> TASK: [jaf_aws | add hosts to fresh group]
>>> >> ************************************
>>> >>
>>> >> creating host via 'add_host': hostname=172.20.16.135
>>> >>
>>> >> added host to group via add_host module: fresh
>>> >> ok: [localhost]
>>> >>
>>> >>
>>> >> Actual Results:
>>> >>
>>> >> ASK: [jaf_aws | add hosts to fresh group]
>>> >> ************************************
>>> >> creating host via 'add_host': hostname=172.20.16.135
>>> >> fatal: [localhost] => Traceback (most recent call last):
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/__init__.py",
>>> >> line 582, in _executor
>>> >>     exec_rc = self._executor_internal(host, new_stdin)
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/__init__.py",
>>> >> line 811, in _executor_internal
>>> >>     complex_args=complex_args
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/__init__.py",
>>> >> line 1028, in _executor_internal_inner
>>> >>     result = handler.run(conn, tmp, module_name, module_args, inject,
>>> >> complex_args)
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/action_plugins/add_host.py",
>>> >> line 82, in run
>>> >>     grp.add_host(new_host)
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/inventory/group.py",
>>> >> line 67, in add_host
>>> >>     host.add_group(self)
>>> >> AttributeError: 'NoneType' object has no attribute 'add_group'
>>> >>
>>> >> FATAL: all hosts have already failed -- aborting
>>> >>
>>> >>
>>> >>
>>> >> Another example with debug output.
>>> >>
>>> >> TASK: [cep_aws | set hostnames]
>>> >> ***********************************************
>>> >> <172.20.16.148> REMOTE_MODULE hostname name="awsqa-cep-primary00"
>>> >>
>>> >> changed: [localhost -> 172.20.16.148] => (item={'ramdisk': None,
>>> 'kernel':
>>> >> 'aki-919dcaf8', 'root_device_type': 'ebs', 'private_dns_name':
>>> >> 'ip-172-20-16-148.ec2.internal', 'tags': {'ansible':
>>> 'awsqa_cep_primary',
>>> >> 'group': 'ancillary', 'Name': 'awsqa-cep-primary00', 'env': 'awsqa',
>>> 'app':
>>> >> 'cep', 'class': 'private'}, 'key_name': 'aws', 'public_ip': None,
>>> >> 'image_id': 'ami-cda70ca6', 'tenancy': 'default', 'private_ip':
>>> >> '172.20.16.148', 'groups': {'sg-642d9a03': 'sg_to_bind',
>>> 'sg-58c64a3f':
>>> >> 'sg_ec2_qa_cep', 'sg-76cf6c11': 'sg_from_nagios', 'sg-a34d95c4':
>>> >> 'sg_from_warp'}, 'public_dns_name': u'', 'state_code': 16, 'id':
>>> >> 'i-b7960465', 'placement': 'us-east-1b', 'ami_launch_index': '0',
>>> >> 'dns_name': u'', 'region': 'us-east-1', 'ebs_optimized': False,
>>> >> 'launch_time': '2015-08-13T23:28:38.000Z', 'instance_type':
>>> 'm3.large',
>>> >> 'state': 'running', 'root_device_name': '/dev/sda', 'hypervisor':
>>> 'xen',
>>> >> 'virtualization_type': 'paravirtual', 'architecture': 'x86_64'}) =>
>>> >> {"changed": true, "item": {"ami_launch_index": "0", "architecture":
>>> >> "x86_64", "dns_name": "", "ebs_optimized": false, "groups":
>>> {"sg-58c64a3f":
>>> >> "sg_ec2_qa_cep", "sg-642d9a03": "sg_to_bind", "sg-76cf6c11":
>>> >> "sg_from_nagios", "sg-a34d95c4": "sg_from_warp"}, "hypervisor":
>>> "xen", "id":
>>> >> "i-b7960465", "image_id": "ami-cda70ca6", "instance_type": "m3.large",
>>> >> "kernel": "aki-919dcaf8", "key_name": "aws", "launch_time":
>>> >> "2015-08-13T23:28:38.000Z", "placement": "us-east-1b",
>>> "private_dns_name":
>>> >> "ip-172-20-16-148.ec2.internal", "private_ip": "172.20.16.148",
>>> >> "public_dns_name": "", "public_ip": null, "ramdisk": null, "region":
>>> >> "us-east-1", "root_device_name": "/dev/sda", "root_device_type":
>>> "ebs",
>>> >> "state": "running", "state_code": 16, "tags": {"Name":
>>> >> "awsqa-cep-primary00", "ansible": "awsqa_cep_primary", "app": "cep",
>>> >> "class": "private", "env": "awsqa", "group": "ancillary"}, "tenancy":
>>> >> "default", "virtualization_type": "paravirtual"}, "name":
>>> >> "awsqa-cep-primary00"}
>>> >>
>>> >> TASK: [cep_aws | debug var=item]
>>> >> **********************************************
>>> >>
>>> >> ok: [localhost] => (item={'ramdisk': None, 'kernel': 'aki-919dcaf8',
>>> >> 'root_device_type': 'ebs', 'private_dns_name':
>>> >> 'ip-172-20-16-148.ec2.internal', 'tags': {'ansible':
>>> 'awsqa_cep_primary',
>>> >> 'group': 'ancillary', 'Name': 'awsqa-cep-primary00', 'env': 'awsqa',
>>> 'app':
>>> >> 'cep', 'class': 'private'}, 'key_name': 'aws', 'public_ip': None,
>>> >> 'image_id': 'ami-cda70ca6', 'tenancy': 'default', 'private_ip':
>>> >> '172.20.16.148', 'groups': {'sg-642d9a03': 'sg_to_bind',
>>> 'sg-58c64a3f':
>>> >> 'sg_ec2_qa_cep', 'sg-76cf6c11': 'sg_from_nagios', 'sg-a34d95c4':
>>> >> 'sg_from_warp'}, 'public_dns_name': u'', 'state_code': 16, 'id':
>>> >> 'i-b7960465', 'placement': 'us-east-1b', 'ami_launch_index': '0',
>>> >> 'dns_name': u'', 'region': 'us-east-1', 'ebs_optimized': False,
>>> >> 'launch_time': '2015-08-13T23:28:38.000Z', 'instance_type':
>>> 'm3.large',
>>> >> 'state': 'running', 'root_device_name': '/dev/sda', 'hypervisor':
>>> 'xen',
>>> >> 'virtualization_type': 'paravirtual', 'architecture': 'x86_64'}) => {
>>> >>     "item": {
>>> >>         "ami_launch_index": "0",
>>> >>         "architecture": "x86_64",
>>> >>         "dns_name": "",
>>> >>         "ebs_optimized": false,
>>> >>         "groups": {
>>> >>             "sg-58c64a3f": "sg_ec2_qa_cep",
>>> >>             "sg-642d9a03": "sg_to_bind",
>>> >>             "sg-76cf6c11": "sg_from_nagios",
>>> >>             "sg-a34d95c4": "sg_from_warp"
>>> >>         },
>>> >>         "hypervisor": "xen",
>>> >>         "id": "i-b7960465",
>>> >>         "image_id": "ami-cda70ca6",
>>> >>         "instance_type": "m3.large",
>>> >>         "kernel": "aki-919dcaf8",
>>> >>         "key_name": "aws",
>>> >>         "launch_time": "2015-08-13T23:28:38.000Z",
>>> >>         "placement": "us-east-1b",
>>> >>         "private_dns_name": "ip-172-20-16-148.ec2.internal",
>>> >>         "private_ip": "172.20.16.148",
>>> >>         "public_dns_name": "",
>>> >>         "public_ip": null,
>>> >>         "ramdisk": null,
>>> >>         "region": "us-east-1",
>>> >>         "root_device_name": "/dev/sda",
>>> >>         "root_device_type": "ebs",
>>> >>         "state": "running",
>>> >>         "state_code": 16,
>>> >>         "tags": {
>>> >>             "Name": "awsqa-cep-primary00",
>>> >>             "ansible": "awsqa_cep_primary",
>>> >>             "app": "cep",
>>> >>             "class": "private",
>>> >>             "env": "awsqa",
>>> >>             "group": "ancillary"
>>> >>         },
>>> >>         "tenancy": "default",
>>> >>         "virtualization_type": "paravirtual"
>>> >>     },
>>> >>     "var": {
>>> >>         "item": {
>>> >>             "ami_launch_index": "0",
>>> >>             "architecture": "x86_64",
>>> >>             "dns_name": "",
>>> >>             "ebs_optimized": false,
>>> >>             "groups": {
>>> >>                 "sg-58c64a3f": "sg_ec2_qa_cep",
>>> >>                 "sg-642d9a03": "sg_to_bind",
>>> >>                 "sg-76cf6c11": "sg_from_nagios",
>>> >>                 "sg-a34d95c4": "sg_from_warp"
>>> >>             },
>>> >>             "hypervisor": "xen",
>>> >>             "id": "i-b7960465",
>>> >>             "image_id": "ami-cda70ca6",
>>> >>             "instance_type": "m3.large",
>>> >>             "kernel": "aki-919dcaf8",
>>> >>             "key_name": "aws",
>>> >>             "launch_time": "2015-08-13T23:28:38.000Z",
>>> >>             "placement": "us-east-1b",
>>> >>             "private_dns_name": "ip-172-20-16-148.ec2.internal",
>>> >>             "private_ip": "172.20.16.148",
>>> >>             "public_dns_name": "",
>>> >>             "public_ip": null,
>>> >>             "ramdisk": null,
>>> >>             "region": "us-east-1",
>>> >>             "root_device_name": "/dev/sda",
>>> >>             "root_device_type": "ebs",
>>> >>             "state": "running",
>>> >>             "state_code": 16,
>>> >>             "tags": {
>>> >>                 "Name": "awsqa-cep-primary00",
>>> >>                 "ansible": "awsqa_cep_primary",
>>> >>                 "app": "cep",
>>> >>                 "class": "private",
>>> >>                 "env": "awsqa",
>>> >>                 "group": "ancillary"
>>> >>             },
>>> >>             "tenancy": "default",
>>> >>             "virtualization_type": "paravirtual"
>>> >>         }
>>> >>     }
>>> >> }
>>> >>
>>> >> TASK: [cep_aws | add hosts to fresh group]
>>> >> ************************************
>>> >> creating host via 'add_host': hostname=172.20.16.148
>>> >> fatal: [localhost] => Traceback (most recent call last):
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/__init__.py",
>>> >> line 582, in _executor
>>> >>     exec_rc = self._executor_internal(host, new_stdin)
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/__init__.py",
>>> >> line 811, in _executor_internal
>>> >>     complex_args=complex_args
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/__init__.py",
>>> >> line 1028, in _executor_internal_inner
>>> >>     result = handler.run(conn, tmp, module_name, module_args, inject,
>>> >> complex_args)
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/runner/action_plugins/add_host.py",
>>> >> line 82, in run
>>> >>     grp.add_host(new_host)
>>> >>   File
>>> >>
>>> "/opt/wp/virtualenv/hegemon/lib/python2.7/site-packages/ansible/inventory/group.py",
>>> >> line 67, in add_host
>>> >>     host.add_group(self)
>>> >> AttributeError: 'NoneType' object has no attribute 'add_group'
>>> >>
>>> >>
>>> >>
>>> >> FATAL: all hosts have already failed -- aborting
>>> >>
>>> > --
>>> > 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/4092ddd6-d1f1-4aa0-b7a6-14dceda655c7%40googlegroups.com
>>> .
>>> >
>>> > For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>
>>> --
>>> Brian Coca
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Ansible Project" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/ansible-project/hTh22Y5J7Zs/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, 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/CAJ5XC8kCTXb63Tq%2Bx0zSCEo%3DiUKqWJh6qUG%2BZCUD%3DGEhELKxow%40mail.gmail.com
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>>
>> David Neudorfer
>>
>> Automation Engineer
>>
>> WARBY PARKER
>> <http://www.google.com/url?q=http%3A%2F%2Fwww.warbyparker.com%2F&sa=D&sntz=1&usg=AFrqEzfkTF4rhdwjlARqomkRV4TIc34NxA>
>>
>
>
>
> --
>
> David Neudorfer
>
> Automation Engineer
>
> WARBY PARKER
> <http://www.google.com/url?q=http%3A%2F%2Fwww.warbyparker.com%2F&sa=D&sntz=1&usg=AFrqEzfkTF4rhdwjlARqomkRV4TIc34NxA>
>



-- 

David Neudorfer

Automation Engineer

WARBY PARKER
<http://www.google.com/url?q=http%3A%2F%2Fwww.warbyparker.com%2F&sa=D&sntz=1&usg=AFrqEzfkTF4rhdwjlARqomkRV4TIc34NxA>

-- 
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/CAB0PhQieQq8YssB4HM8pX7z4bFsb8iSjD7vSg5-C0jCabExD%3Dg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to