Я пытаюсь запустить экземпляр с ролью IAM с помощью Ansible.
Но я не знаю, как это сделать.
Кто-нибудь знает, возможно ли это?
Если я не могу использовать Ansible. Я пробую это с бото
http://docs.ansible.com/ec2_module.html
instance_profile_name
(добавлено в 1.3):
Имя используемого профиля экземпляра IAM. Библиотека Boto должна быть 2.5.0+
- 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
Для instance_profile_name
просто нужно использовать имя роли IAM. Если, например, вы создали роль IAM "веб-сервер", затем используйте "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"
}
}
Вы можете протестировать приведенные ниже задачи и прикрепить 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