Need assist with syntax to launch with EC2 profile

  • name: Launch instance
    local_action: ec2 keypair={{ keypair }} instance_type={{ instance_type }}
    image={{ image }} region={{ region }}
    aws_access_key={{ aws_access_key }}
    aws_secret_key={{ aws_secret_key }}
    group={{ security_group }} wait=true
    instance_profile_name=arn:aws:iam::127847392001:instance-profile/administrator
    register: ec2

and Ansible says

Instance Profile ARN(s) arn:aws:iam::127847392001:instance-profile/administrator

TASK: [ec2 | Launch instance] *************************************************

failed: [localhost] => {“failed”: true, “item”: “”}

msg: Instance creation failed => InvalidParameterValue: Value (arn:aws:iam::127847392001:instance-profile/administrator) for parameter iamInstanceProfile.name is invalid. Invalid IAM Instance Profile name

Have also tried with double quotes around name

instance_profile_name=“arn:aws:iam::127847392001:instance-profile/administrator”

Looking at Amazon console I see a role named - administrator. I can launch instances without Ansible using the above profile.

Is this a syntax problem, or am I in the wrong environment or something.

Thaks

mark

I wonder if you should just use administrator (rather than the full ARN) for instance_profile_name.

From http://boto.readthedocs.org/en/latest/ref/ec2.html#boto.ec2.connection.EC2Connection.run_instances

  • instance_profile_arn (string) – The Amazon resource name (ARN) of the IAM Instance Profile (IIP) to associate with the instances.
  • instance_profile_name (string) – The name of the IAM Instance Profile (IIP) to associate with the instances.
    The ec2 module only uses the latter, I think, although it could presumably be tweaked to use the former in addition.

Will

Will

Thank you.

Yes, you are correct, I had the wrong value for the argument I was using.

instance_profile_name=administrator

is now working for me.

The complete stanza is

  • name: Launch instance
    local_action: ec2 keypair={{ keypair }} instance_type={{ instance_type }}
    image={{ image }} region={{ region }}
    aws_access_key={{ aws_access_key }}
    aws_secret_key={{ aws_secret_key }}
    group={{ security_group }} wait=true
    instance_profile_name=administrator
    register: ec2

Thanks much.

mark