IAMロールでインスタンスを起動Ansible を使用しようとしています。
しかし、それを行う方法がわかりません。
それが可能かどうか誰か知っていますか?
Ansibleを使用できない場合。 boto で試してみます
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
以下のタスクをテストして、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
instance_profile_name
の場合、IAMロール名を使用する必要があります。たとえばIAMロール「webserver」を作成してから、instance_profile_name
に「arn:aws:iam :: 123456789012:instance-profile/webserver」を使用します(アカウントに合わせてarnを編集します)。
正しい信頼ポリシープリンシパルも使用していることを確認してください。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}