2017-01-30 4 views
0

На этот вопрос ответили здесь, на Stack.Получение только тома id ansible

ansible get aws ebs volume id which already exist

Get volume id from newly created ebs volume using ansible

Для жизни меня я пытаюсь ec2_vol.volume_id и некоторые другие биты jmespath запроса, но не получать правильный выход помощь. Я просто хочу vol id. Больше ничего.

--- 
- hosts: localhost 
    connection: local 
    gather_facts: no 
    tasks: 
    - name: get associated vols 
    ec2_vol: 
     instance: i-xxxxxxxxxxxxx 
     state: list 
     profile: default 
     region: us-east-1 
    register: ec2_vol 

    - debug: 
     msg: "{{ ec2_vol.volume_id }}" 

также не работает

--- 
- hosts: localhost 
    connection: local 
    gather_facts: no 
    tasks: 
    - name: get associated vols 
    ec2_vol: 
     instance: i-xxxxxxxxxxxxxx 
     state: list 
     profile: default 
     region: us-east-1 
    register: ec2_vol 

    - debug: msg="{{ item.volume_id }}" 
    with_items: ec2_vol.results 

анзибль 2.2 и 2.3 протестирован

+0

Возможный дубликат [анзибль прибудет AWS ЭТ идентификатора тома, которые уже существуют] (http://stackoverflow.com/questions/41659564/ansible-get-aws-ebs-volume -id-which-exist-exist) - как вы заметили: на него ответили - примените решение из ответа вместо повторения кода из вопроса. – techraf

+0

Не было никакого копирования кода из вопроса. Однако в предыдущих ответах используется 'volume_id', который не работает. Тогда есть возможность передать элементы в сообщение отладки. Что тоже не работает для меня. – shdobxr

+0

Вышеупомянутый возможный ответ выше не помогает. Есть намного более элегантные меры, чтобы получить объем. Этот ответ начинается с сообщения от ec2, а не ec2_vol. – shdobxr

ответ

1

Принимая биты из предыдущего ответа вам нужно будет понять, как JMESPATH фильтрации, чтобы получить то, что вы хотите от вывод.

Вот ответ

--- 
- hosts: localhost 
    connection: local 
    gather_facts: no 
    tasks: 
    - name: get associated vols 
    ec2_vol: 
     instance: i-xxxxxxxxxxxxxx 
     state: list 
     profile: default 
     region: us-east-1 
    register: ec2_vol 

    - debug: msg="{{ ec2_vol.volumes | map(attribute='id') | list }}"