Iniciando uma instância EC2 com uma função IAM usando Ansible

Iniciando uma instância EC2 com uma função IAM usando Ansible

eu estou tentandoiniciar uma instância com uma função IAMusandoAnsible.

Mas não encontro como fazer isso.

Alguém sabe se é possível?

Se eu não puder usar o Ansible. eu tento comboto

Responder1

http://docs.ansible.com/ec2_module.html

instance_profile_name (adicionado em 1.3):
nome do perfil da instância do IAM a ser usado. A biblioteca Boto deve ser 2.5.0+

Responder2

- 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

Responder3

Basta instance_profile_nameusar um nome de função IAM. Se, por exemplo, você criou uma função IAM "webserver", use "arn:aws:iam::123456789012:instance-profile/webserver" para instance_profile_name(edite arn para corresponder à sua conta).

certifique-se de usar também o principal da política de confiança correto:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": {"Service": "ec2.amazonaws.com"},
    "Action": "sts:AssumeRole"
  }
} 

Responder4

Você pode testar as tarefas abaixo e anexar um arquivo iam_roleà sua instância. Não tentei fazer isso com o nome da instância, mas acho 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

informação relacionada