Estoy tratando delanzar una instancia con un rol de IAMusandoansible.
Pero no encuentro como hacerlo.
¿Alguien sabe si es posible?
Si no puedo usar Ansible. lo intento conboto
Respuesta1
http://docs.ansible.com/ec2_module.html
instance_profile_name
(agregado en 1.3):
nombre del perfil de instancia de IAM que se utilizará. La biblioteca de Boto debe ser 2.5.0+
Respuesta2
- name: Get Instance ID
debug: var=ec2_id
- name: set IAM ROLE
ec2_instance:
region: eu-west-3
aws_access_key: "{{ package_aws_access_key }}"
aws_secret_key: "{{ package_aws_secret_key }}"
instance_ids:
- "{{ ec2_id }}"
instance_role: "{{ iam_role }}"
delegate_to: localhost
Respuesta3
Simplemente instance_profile_name
hay que utilizar un nombre de función de IAM. Si, por ejemplo, ha creado una función de IAM "servidor web", utilice "arn:aws:iam::123456789012:instance-profile/webserver" para instance_profile_name
(edite arn para que coincida con su cuenta).
asegúrese de utilizar también el principio de política de confianza correcto:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}
Respuesta4
Puede probar las tareas siguientes y adjuntar una iam_role
a su instancia. No probé esto con el nombre de la instancia pero creo que funcionará.
- name: Get Instance ID debug:
var=ec2_id
- name: set IAM ROLE
ec2_instance:
region: eu-west-3
aws_access_key: "{{ package_aws_access_key }}"
aws_secret_key: "{{ package_aws_secret_key }}"
instance_ids:
- "{{ ec2_id }}"
instance_role: "{{ iam_role }}"
delegate_to: localhost