내 생각엔 내가 이 일을 너무 오랫동안 해왔다고 생각하지만, 내 두 번째 이유를 평생 동안 알 수는 없다.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'