배열을 반복하기 위해 범위를 지정하는 방법

배열을 반복하기 위해 범위를 지정하는 방법

ansible을 사용하여 원격 노드에서 애플리케이션을 삭제하고 싶습니다. 아래는 내 스크립트입니다. 패키지가 더 이상 남지 않을 때까지 제거 작업이 반복되는 범위를 제공하려면 어떻게 해야 합니까?

---

 hosts: all



 tasks:
 - name: check-packages
  shell: rpm -qa | grep -e "^\(HPOpr\|HPE\|HPOv\|HPBsm\|MIB2Policy\|HPOMi\)"
  register: output

- name: uninstall
  shell: rpm -e   {{ output.stdout_lines.0 }}   --nodeps

범위 연산자를 사용해 보았습니다.

   shell: rpm -e   {{ output.stdout_lines[:40] }}   --nodeps

하지만 작동하지 않습니다.

답변1

- name: uninstall
  package:
    name: "{{ item }}"
    state: absent
  with_list: "{{ output.stdout_lines }}"

또는 Ansible 2.5 이상을 사용하는 with_list경우 loop.

한 번에 모든 작업을 수행할 수도 있습니다.

- name: uninstall
  package:
    name: "{{ output.stdout_lines }}"
    state: absent

관련 정보