Ansible with_items가 반복되지 않음

Ansible with_items가 반복되지 않음

내 생각엔 내가 이 일을 너무 오랫동안 해왔다고 생각하지만, 내 두 번째 이유를 평생 동안 알 수는 없다.with_items내 첫 번째처럼 반복되지 않습니다. 나는 이미json_query첫 번째 작업처럼 도움이 되지 않았습니다.

일:

- name: Set backing_lunuuid
  set_fact:
    backing_lunuuid: "{{ item | json_query('guest_disk_info.*.backing_lunuuid') }}" 
  with_items: " {{ rdm_jsondata.results }}" 

- debug:
    msg: " {{ backing_lunuuid }}" 

- name: Remove leading and trailing backing_lunuuid to set disk.UUID  
  set_fact:
    rdm_uuid: "{{ item[10:-12] }}"
  with_items: " {{ backing_lunuuid }}" 

- debug:
    msg: " {{ rdm_uuid }}" 

첫 번째 디버그 출력(backing_lunuuid용):

    TASK [debug] ********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": " ['0200110000600507681081007e1800000000000053323134352020', '02000f0000600507681081007e1800000000000051323134352020', '0200150000600507681081007e1800000000000059323134352020', '0200130000600507681081007e1800000000000055323134352020', '0200140000600507681081007e1800000000000056323134352020', '0200240000600507681081007e1800000000000057323134352020', '0200420000600507681081007e1800000000000058323134352020', '0200100000600507681081007e1800000000000052323134352020', '0200120000600507681081007e1800000000000054323134352020']"

첫 번째처럼 반복되지 않는 두 번째 디버그 출력(rdm_uuid용)"

    TASK [Remove leading and trailing backing_lunuuid to set disk.UUID] *************************************************************************************************************************************
ok: [localhost] => (item=0200110000600507681081007e1800000000000053323134352020)
ok: [localhost] => (item=02000f0000600507681081007e1800000000000051323134352020)
ok: [localhost] => (item=0200150000600507681081007e1800000000000059323134352020)
ok: [localhost] => (item=0200130000600507681081007e1800000000000055323134352020)
ok: [localhost] => (item=0200140000600507681081007e1800000000000056323134352020)
ok: [localhost] => (item=0200240000600507681081007e1800000000000057323134352020)
ok: [localhost] => (item=0200420000600507681081007e1800000000000058323134352020)
ok: [localhost] => (item=0200100000600507681081007e1800000000000052323134352020)
ok: [localhost] => (item=0200120000600507681081007e1800000000000054323134352020)

TASK [debug] ********************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": " 600507681081007e1800000000000054"

어떤 도움이라도 주시면 감사하겠습니다.

답변1

rdm_uuid각 루프 반복을 덮어쓰고 있습니다 . 다음과 같이 시도해 보세요.

- name: Remove leading and trailing backing_lunuuid to set disk.UUID  
  set_fact:
    rdm_uuid: "{{ rdm_uuid | default([]) + [item[10:-12]] }}"
  with_items: " {{ backing_lunuuid }}" 

편집: 첫 번째는 동일한 작업을 수행하는 것이지만 마지막 요소에는 rdm_jsondata.results필요한 데이터가 있습니다. 을 살펴보세요 rdm_jsondata.results.

답변2

사용정규식_교체파이프의 항목을 자르려면

rdm_uuid: "{{ backing_lunuuid|map('regex_replace', regex, replace)|list }}"
regex: '.{10}(.*).{12}'
replace: '\1'

관련 정보