2016-05-27 4 views
0

使用可能なボリュームグループのリストを取得し、ボリュームグループの属性を使用して、条件を満たすボリュームにファイルシステムを作成することができます。使用可能なボリュームグループ属性を入手する

基準 1:ボリュームに名前のルートを持っていなければなりませんそれ 2:私はこのロジック

- name: list volume groups 
    debug: msg="echo volume groups is {{ item }}" 
    with_items: "{{ ansible_lvm.vgs }} 

を持っている。しかしのその属性を取得するために苦労しています

ギガバイト

-少なくとも2ボリュームでなければなりませんvgs。ここで

ちょうどeveryonesの利益のためにansible_lvm

"ansible_lvm": { 
      "lvs": { 
       "lvud01": { 
        "size_g": "0.50", 
        "vg": "vgud01" 
       }, 
       "root": { 
        "size_g": "79.01", 
        "vg": "precise32" 
       }, 
       "swap_1": { 
        "size_g": "0.75", 
        "vg": "precise32" 
       } 
      }, 
      "vgs": { 
       "precise32": { 
        "free_g": "0", 
        "num_lvs": "2", 
        "num_pvs": "1", 
        "size_g": "79.76" 
       }, 
       "vgud01": { 
        "free_g": "0.50", 
        "num_lvs": "1", 
        "num_pvs": "1", 
        "size_g": "1.00" 
       } 
      } 
+0

'ansible_lvm.vgs'は辞書です。ですから、あなたのタスクに 'with_items'の代わりに' with_dict'を使ってみてください。次に、 '{{item.key}} 'と' {{item.value.free_g}}'を介してdictキー(exact32やvgud01など)にアクセスできます。次に、あなたのタスクに条件付き 'when'を使用して、ドライブにルートが含まれているかどうかを判断することができます。' when: "{item.key}} == 'root'" 'ではありません。 – fishi

+0

誤って構文が間違っています。私はいつ ':{{not item.key == 'root'}}" ' – fishi

+0

それを解決したのかを意味しました。ありがとう。 – user3073335

答えて

0

の抜粋であると感謝@fishi

- name: list volume groups 
     debug: msg="echo volume groups is {{ item.key }} has {{ item.value.free_g }}" 
     with_dict: "{{ ansible_lvm.vgs }}" 
     when: not item.key == "root" 
関連する問題