Ich versuche, eine Instanz mit einer IAM-Rolle mit Ansible zu starten .
Aber ich finde nicht, wie es geht.
Weiß jemand, ob es möglich ist?
Wenn ich Ansible nicht verwenden kann. Ich versuche es mit Boto
quelle
Ich versuche, eine Instanz mit einer IAM-Rolle mit Ansible zu starten .
Aber ich finde nicht, wie es geht.
Weiß jemand, ob es möglich ist?
Wenn ich Ansible nicht verwenden kann. Ich versuche es mit Boto
http://docs.ansible.com/ec2_module.html
instance_profile_name
(hinzugefügt in 1.3) :
Name des zu verwendenden IAM-Instanzprofils. Die Boto-Bibliothek muss 2.5.0+ sein
- 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
Zum instance_profile_name
einen muss man einfach einen IAM-Rollennamen verwenden. Wenn Sie beispielsweise eine IAM-Rolle "Webserver" erstellt haben, verwenden Sie "arn: aws: iam :: 123456789012: instance-profile / webserver" für instance_profile_name
(bearbeiten Sie arn entsprechend Ihrem Konto).
Stellen Sie sicher, dass Sie auch das richtige Prinzip der Vertrauensrichtlinie verwenden:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}
}
Sie können die folgenden Aufgaben testen und eine iam_role
an Ihre Instanz anhängen . Ich habe dies nicht mit dem Instanznamen versucht, aber ich denke, dass es funktionieren wird.
- 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