答案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