2016-12-30 5 views
0

Я использую Ansible 2.1.3.0 на данный момент, и я пытаюсь выяснить, как создать AMI экземпляра-хранилища, используя модуль ec2_ami.Возможно ли создать экземпляр-хранилище AMI с помощью модуля ec2_ami?

Похоже, что это невозможно сделать, если экземпляр имеет корневой регистр экземпляра - я получаю Instance does not have a volume attached at root (null)" независимо от того, что я делаю.

Так что мне интересно, как я могу сделать AMI для запуска (используя модуль ec2_ami) из экземпляра с поддержкой EBS? Документация не позволяет мне отображать первый том в ami, а второй должен быть ephemeral0. Я шел через ec2_ami исходного модуля код и, кажется, он не имеет никакой поддержки для этого, но я, возможно, упустил из вида что-то ...

Когда я curl http://169.254.169.254/latest/meta-data/block-device-mapping/ на экземпляре источник EC2, я получаю следующее:

ami 
ephemeral0 

ответ

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 парам, как опр ault is stop, что несовместимо с экземплярами-магазинами, вам необходимо установить его на terminate.

+0

Я знаю, как создать такой экземпляр EC2. Проблема, однако, в том, чтобы создать AMI! Что мне нужно сделать, так это создать 'instance.image' в вашей задаче ... – DejanLekic

+0

@DejanLekic извините, я неправильно понял, ошибка, на которую вы ссылались, отбросила меня. Я пытаюсь сделать то же самое, я также разместил здесь новый вопрос: http://stackoverflow.com/questions/42394774/is-there-an-ansible-module-for-creating-instance-store-based -amis – oucil

+0

@DejanLekic на основе этого ответа здесь: http://serverfault.com/a/396686/135680 Я подозреваю, что, поскольку 'ec2_bundle_instance' является только Windows, то модуль' ec2_ami', вероятно, также ограничен подобным образом в 'instance-store ', поэтому процесс, скорее всего, придется запускать вручную с помощью задач Ansible' command'. – oucil