如何在ansible中指定范围来迭代数组

如何在ansible中指定范围来迭代数组

我想使用 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_listloop.

您也可以一次性完成:

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

相关内容