2016-12-30 7 views
0

私は現在、Ansible 2.1.3.0を使用しています。私はec2_amiモジュールを使用してインスタンスストアAMIを作成する方法を理解しようとしています。ec2_amiモジュールを使用してインスタンスストアAMIを作成することはできますか?

インスタンスにインスタンスストアルートがある場合、これを行うことはできないようです - 私は何をしてもInstance does not have a volume attached at root (null)"を取得しています。

EBSでサポートされているインスタンスからint2ストアのAMI(ec2_amiモジュールを使用)を作成するにはどうすればいいですか?ドキュメントでは、最初のボリュームをamiにマッピングすることができず、2番目のボリュームはephemeral0になる必要があります。私はソースEC2インスタンス上curl http://169.254.169.254/latest/meta-data/block-device-mapping/を行うと、私は次のように

を取得しています...私はec2_amiモジュールのソースコードを経由して、それはこのをサポートしていませんが、私は何かを見落としていることのように思える:

ami 
ephemeral0 

答えて

0

私はec2_amiよりも2.2とかなりec2を使用してんだけど、これはあなたが探しているものを達成でしょう...

- 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に特別な注意を払ってくださいaultが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 'マシンであるため、プロセスは、可能な' command'タスクを使って手動でスクリプト化する必要があります。 – oucil

関連する問題