Запуск экземпляра EC2 с ролью IAM с использованием Ansible

Запуск экземпляра EC2 с ролью IAM с использованием Ansible

Я пытаюсьзапустить экземпляр с ролью 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

Связанный контент