Ansible

如何指定範圍以在ansible中遍歷數組

  • September 12, 2018

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

但它不起作用。

- 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

引用自:https://unix.stackexchange.com/questions/468188