我目前正在使用Ansible 2.1.3.0,我正在尝试弄清楚如何使用ec2_ami模块创建实例存储AMI。
如果实例具有实例存储根,看起来不可能这样做 - 无论我做什么,我都会得到Instance does not have a volume attached at root (null)"
。
所以我想知道如何从EBS支持的实例中创建一个intance-store AMI(使用ec2_ami模块)?该文档不允许我将第一个卷映射为ami
,第二个卷必须为ephemeral0
。我正在浏览ec2_ami模块的源代码,似乎它对此没有支持,但我可能忽略了一些东西......
当我在源EC2实例上执行curl http://169.254.169.254/latest/meta-data/block-device-mapping/
时,我得到以下内容:
ami
ephemeral0
答案 0 :(得分:0)
我在2.2并使用ec2
而不是ec2_ami
,但这可以实现您正在寻找的......
- name: Launch instance
ec2:
aws_access_key: "{{ aws.access_key }}"
aws_secret_key: "{{ aws.secret_key }}"
instance_tags: "{{ instance.tags }}"
count: 1
state: started
key_name: "{{ instance.key_name }}"
group: "{{ instance.security_group }}"
instance_type: "{{ instance.type }}"
image: "{{ instance.image }}"
wait: true
region: "{{ aws.region }}"
vpc_subnet_id: "{{ subnets_id }}"
assign_public_ip: "{{ instance.public_ip }}"
instance_profile_name: "{{ aws.iam_role }}"
instance_initiated_shutdown_behavior: terminate
volumes:
- device_name: /dev/sdb
volume_type: ephemeral
ephemeral: ephemeral0
register: ec2
要特别注意instance_initiated_shutdown_behavior
param,因为默认值为stop
,这与基于实例店的系统不兼容,您需要将其设置为{ {1}}工作。