Я пытаюсьзапустить экземпляр с ролью IAMс использованиемАнсибль.
Но я не нахожу, как это сделать.
Кто-нибудь знает, возможно ли это?
Если я не могу использовать Ansible. Я пробую сбото
решение1
http://docs.ansible.com/ec2_module.html
instance_profile_name
(добавлено в 1.3):
Имя используемого профиля экземпляра IAM. Библиотека Boto должна быть версии 2.5.0+
решение2
- 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
решение3
Для instance_profile_name
этого просто нужно использовать имя роли IAM. Если, например, вы создали роль IAM "webserver", то используйте "arn:aws:iam::123456789012:instance-profile/webserver" для instance_profile_name
(отредактируйте arn, чтобы он соответствовал вашей учетной записи).
убедитесь, что вы также используете правильный принцип политики доверия:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}
решение4
Вы можете протестировать задачи ниже и прикрепить iam_role
к своему экземпляру. Я не пробовал это с именем экземпляра, но думаю, что это сработает.
- 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