2016-02-11 9 views
7

私は可能なドライブを使ってec2インスタンスをスピンアップし、使用可能なすべてのドライブをマウントポイントにマウントします。潜在的なドライブをすべて搭載する方法

私はec2 moduleを確認しましたが、使用可能なすべてのエフェメラルドライブを有効にしてから、これらのドライブをマウントする方法はありません。

もし私がこれをしたいのなら、私は次のようなインスタンスタイプに特有のタスクを書く必要があります。

- ec2: 
key_name: mykey 
group: webserver 
instance_type: c3.xlarge 
image: ami-123456 
wait: yes 
wait_timeout: 500 
volumes: 
    - device_name: /dev/xvda 
    volume_type: standard 
    volume_size: 100 
    - device_name: /dev/xvdb 
    volume_type: ephemeral 
    volume_size: 40 
    - device_name: /dev/xvd 
    volume_type: ephemeral 
    volume_size: 40 
vpc_subnet_id: subnet-29e63245 
assign_public_ip: yes 
exact_count: 1 

次のパラメータを設定する方法は一部

volumes: 
    - device_name: /dev/xvda 
    volume_type: standard 
    volume_size: 100 
    - device_name: /dev/xvdb 
    volume_type: ephemeral 
    volume_size: 40 
    - device_name: /dev/xvd 
    volume_type: ephemeral 
    volume_size: 40 

いずれかありますこれを行う方法を知っていますか?

おかげ

+0

ボリュームファクトの収集について考えましたか? ' - ec2_vol_facts:filters:attachment.delete-on-termination:true' – fernandezcuesta

答えて

4

は、そのための私のソリューションは、通常group_vars/allに、インスタンスごとのボリュームタイプの事前定義されたリストを持っていることでしたが、限り、それは自分の役割に表示されてどこにもある可能性があります。ような何か:

その後
one_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
two_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
three_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
four_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
    - { device_name: /dev/sde, ephemeral: ephemeral3 } 


ephemeral_volumes: 
    c1.medium: "{{ one_ephemeral }}" 
    c1.xlarge: "{{ four_ephemeral }}" 
    c3.large: "{{ two_ephemeral }}" 
    c3.xlarge: "{{ two_ephemeral }}" 
    c3.2xlarge: "{{ two_ephemeral }}" 
    c3.4xlarge: "{{ two_ephemeral }}" 
    c3.8xlarge: "{{ two_ephemeral }}" 
    i2.xlarge: "{{ one_ephemeral }}" 
    i2.2xlarge: "{{ two_ephemeral }}" 
    i2.4xlarge: "{{ four_ephemeral }}" 
    m1.small: "{{ one_ephemeral }}" 
    m1.medium: "{{ one_ephemeral }}" 
    m1.large: "{{ two_ephemeral }}" 
    m1.xlarge: "{{ four_ephemeral }}" 
    m2.xlarge: "{{ one_ephemeral }}" 
    m2.2xlarge: "{{ one_ephemeral }}" 
    m2.4xlarge: "{{ two_ephemeral }}" 
    m3.medium: "{{ one_ephemeral }}" 
    m3.large: "{{ one_ephemeral }}" 
    m3.xlarge: "{{ two_ephemeral }}" 
    m3.2xlarge: "{{ two_ephemeral }}" 
    r3.large: "{{ one_ephemeral }}" 
    r3.xlarge: "{{ one_ephemeral }}" 
    r3.2xlarge: "{{ one_ephemeral }}" 
    r3.4xlarge: "{{ one_ephemeral }}" 
    r3.8xlarge: "{{ two_ephemeral }}" 

、EC2または私はボリュームのリストにすることを連結ec2_lcモジュールを呼び出す - のようなもの:

volumes: "{{ instance_conf.volumes + (ephemeral_volumes[instance_conf.instance_type]|default([])) }}" 

は、ここでは、モジュールの呼び出しに収まる方法は次のとおりです。

local_action: 
    module: ec2_lc 
    image_id: "{{ instance_conf.ami }}" 
    instance_type: "{{ instance_conf.instance_type }}" 
    instance_profile_name: "{{ instance_conf.instance_profile }}" 
    key_name: "{{ instance_conf.key_name | default(omit) }}" 
    name: "{{ instance_conf.name }}-lc" 
    region: "{{ instance_conf.region }}" 
    assign_public_ip: "{{ instance_conf.assign_public_ip | default(omit) }}" 
    security_groups: "{{ instance_conf.security_groups }}" 
    volumes: "{{ instance_conf.volumes + (ephemeral_volumes[instance_conf.instance_type]|default([])) }}" 
    state: present 
    user_data: "{{ lookup('template', instance_conf.userdata_template | default('userdata.sh.j2')) }}" 
0
Here is an updated ec2 instance list 

one_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
two_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
three_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
four_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
    - { device_name: /dev/sde, ephemeral: ephemeral3 } 
six_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
    - { device_name: /dev/sde, ephemeral: ephemeral3 } 
    - { device_name: /dev/sdf, ephemeral: ephemeral4 } 
    - { device_name: /dev/sdg, ephemeral: ephemeral5 } 
eight_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
    - { device_name: /dev/sde, ephemeral: ephemeral3 } 
    - { device_name: /dev/sdf, ephemeral: ephemeral4 } 
    - { device_name: /dev/sdg, ephemeral: ephemeral5 } 
    - { device_name: /dev/sdh, ephemeral: ephemeral6 } 
    - { device_name: /dev/sdi, ephemeral: ephemeral7 } 
twelve_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
    - { device_name: /dev/sde, ephemeral: ephemeral3 } 
    - { device_name: /dev/sdf, ephemeral: ephemeral4 } 
    - { device_name: /dev/sdg, ephemeral: ephemeral5 } 
    - { device_name: /dev/sdh, ephemeral: ephemeral6 } 
    - { device_name: /dev/sdi, ephemeral: ephemeral7 } 
    - { device_name: /dev/sdj, ephemeral: ephemeral8 } 
    - { device_name: /dev/sdk, ephemeral: ephemeral9 } 
    - { device_name: /dev/sdl, ephemeral: ephemeral10 } 
    - { device_name: /dev/sdm, ephemeral: ephemeral11 } 
twenty_four_ephemeral: 
    - { device_name: /dev/sdb, ephemeral: ephemeral0 } 
    - { device_name: /dev/sdc, ephemeral: ephemeral1 } 
    - { device_name: /dev/sdd, ephemeral: ephemeral2 } 
    - { device_name: /dev/sde, ephemeral: ephemeral3 } 
    - { device_name: /dev/sdf, ephemeral: ephemeral4 } 
    - { device_name: /dev/sdg, ephemeral: ephemeral5 } 
    - { device_name: /dev/sdh, ephemeral: ephemeral6 } 
    - { device_name: /dev/sdi, ephemeral: ephemeral7 } 
    - { device_name: /dev/sdj, ephemeral: ephemeral8 } 
    - { device_name: /dev/sdk, ephemeral: ephemeral9 } 
    - { device_name: /dev/sdl, ephemeral: ephemeral10 } 
    - { device_name: /dev/sdm, ephemeral: ephemeral11 } 
    - { device_name: /dev/sdn, ephemeral: ephemeral12 } 
    - { device_name: /dev/sdo, ephemeral: ephemeral13 } 
    - { device_name: /dev/sdp, ephemeral: ephemeral14 } 
    - { device_name: /dev/sdq, ephemeral: ephemeral15 } 
    - { device_name: /dev/sdr, ephemeral: ephemeral16 } 
    - { device_name: /dev/sds, ephemeral: ephemeral17 } 
    - { device_name: /dev/sdt, ephemeral: ephemeral18 } 
    - { device_name: /dev/sdu, ephemeral: ephemeral19 } 
    - { device_name: /dev/sdv, ephemeral: ephemeral20 } 
    - { device_name: /dev/sdw, ephemeral: ephemeral21 } 
    - { device_name: /dev/sdx, ephemeral: ephemeral22 } 
    - { device_name: /dev/sdy, ephemeral: ephemeral23 } 


ephemeral_volumes: 
    c1.medium: "{{ one_ephemeral }}" 
    c1.xlarge: "{{ four_ephemeral }}" 
    c3.large: "{{ two_ephemeral }}" 
    c3.xlarge: "{{ two_ephemeral }}" 
    c3.2xlarge: "{{ two_ephemeral }}" 
    c3.4xlarge: "{{ two_ephemeral }}" 
    c3.8xlarge: "{{ two_ephemeral }}" 
    cc2.8xlarge: "{{ four_ephemeral }}" 
    cg1.4xlarge: "{{ two_ephemeral }}" 
    cr1.8xlarge: "{{ two_ephemeral }}" 
    d2.xlarge: "{{ three_ephemeral }}" 
    d2.2xlarge: "{{ six_ephemeral }}" 
    d2.4xlarge: "{{ twelve_ephemeral }}" 
    d2.8xlarge: "{{ twenty_four_ephemeral }}" 
    g2.2xlarge: "{{ one_ephemeral }}" 
    hi1.xlarge: "{{ two_ephemeral }}" 
    hs1.xlarge: "{{ twenty_four_ephemeral }}" 
    i2.xlarge: "{{ one_ephemeral }}" 
    i2.2xlarge: "{{ two_ephemeral }}" 
    i2.4xlarge: "{{ four_ephemeral }}" 
    i2.8xlarge: "{{ eight_ephemeral }}" 
    m1.small: "{{ one_ephemeral }}" 
    m1.medium: "{{ one_ephemeral }}" 
    m1.large: "{{ two_ephemeral }}" 
    m1.xlarge: "{{ four_ephemeral }}" 
    m2.xlarge: "{{ one_ephemeral }}" 
    m2.2xlarge: "{{ one_ephemeral }}" 
    m2.4xlarge: "{{ two_ephemeral }}" 
    m3.medium: "{{ one_ephemeral }}" 
    m3.large: "{{ one_ephemeral }}" 
    m3.xlarge: "{{ two_ephemeral }}" 
    m3.2xlarge: "{{ two_ephemeral }}" 
    r3.large: "{{ one_ephemeral }}" 
    r3.xlarge: "{{ one_ephemeral }}" 
    r3.2xlarge: "{{ one_ephemeral }}" 
    r3.4xlarge: "{{ one_ephemeral }}" 
    r3.8xlarge: "{{ two_ephemeral }}" 
    x1.16xlarge: "{{ one_ephemeral }}" 
    x1.32xlarge: "{{ two_ephemeral }}" 
+0

ようこそ!スタックオーバーフロー!私はあなたに[ツアーをする]ことをお勧めします(http://stackoverflow.com/tour)。 答えを出すときは、[あなたの答えが何であるかについての説明](http://stackoverflow.com/help/how-to-answer)を挙げることが望ましいです。 –

関連する問題