Ansible에서 쉘 모듈을 명령 모듈로 바꾸는 방법은 무엇입니까?

Ansible에서 쉘 모듈을 명령 모듈로 바꾸는 방법은 무엇입니까?

작은 도움이 하나 필요해요.

shell아래 예에서는 모듈 로 교체해야 합니다 command. 하지만 command파이프로 작업하지 않아서 혼란스러워요 .

그러니 이 작업에 대한 해결책을 알려주십시오. 예:

- name: Get the version
  become: true
  run_once: true
  shell: zypper pa | grep eric-odl | awk -F {'print $4'}
  register: odl_version

각 명령 출력이 다음 명령에 종속되므로 이 작업을 어떻게 분할합니까?

답변1

shell모듈 로 교체해야겠네요 command.

달성하려는 이유와 목표에 대한 더 많은 배경 정보를 제공할 수 있습니다.

현재 나는 man zypper당신이 시도하는 것에 따라 추측

패키지(pa) [옵션] [저장소]...

사용 가능한 모든 패키지 또는 지정된 리포지토리의 모든 패키지를 나열합니다. 비슷하다 zypper search -s -t package.

먼저 하고 나중에 뭔가를 더 진행하는 것을 좋아합니다.


command하지만 파이프로 작업하지 않는 것이 혼란 스럽습니다 .

맞습니다. 그게 사실이고 의도된 동작입니다. 예시를 참조하세요


그러니 이 작업에 대한 해결책을 알려주십시오.

"해당 솔루션"은 없지만 가장 선호되지 않는 접근 방식부터 다음 목록을 살펴볼 수 있습니다.

또는 최소한 shell파이프를 사용하여 명령을 유지하세요(현재 주어진 예는 그대로 유지됩니다).

관련 정보