Ansible 변수는 등록 출력에서 동적으로 가져옵니다. 첫 번째 루프는 등록된 출력 결과에서 값을 수집하고 when 조건을 만족하면 다음 루프가 실행을 시작해야 합니다. ansible 조건에서 두 개의 루프를 하나로 사용하는 방법
- name: stop the http service
command: sh http.sh stop {{item}}
args:
chdir: /opt/http/
loop: “{{http.stdout_lines}}”
when: “item.stdout != 0"
loop: “{{wordcount.results}}”
이것은 코드이지만 하나의 루프가 완료되면 두 개의 루프를 연속으로 사용할 수 없습니다. 다음 루프를 실행해야 합니다.
답변1
죄송합니다. 원하는 대로 작동하지 않습니다. 작업당 한 번만 정의할 수 있습니다 loop
. 두 번째 정의는 무시됩니다. 이 작업을 여러 작업으로 나누어야 할 수도 있지만 달성하려는 작업에 대한 예가 완전히 명확하지 않기 때문에 솔루션을 제안할 수 없습니다. 더 많은 맥락이 도움이 될 수 있습니다.