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_name
usar 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