删除包ansible剧本

Hpa*_*oio 6 amazon-ec2 vagrant ansible ansible-playbook

我使用Vagrant创建了EC2实例并使用Ansible进行了配置.

我有这个任务,使用安装2包apt.

---
- name: Install GIT & TIG
  action: apt pkg={{ item }} state=installed
  with_items:
    - git
    - tig
Run Code Online (Sandbox Code Playgroud)

我现在要删除/删除tig我的实例.我把它从我的剧本中删除了,vagrant provision但我已经开始了但是包裹仍在那里.

我怎样才能做到这一点 ?

udo*_*dan 9

从您的剧本中删除它们时,Ansible无法自动删除它们.Ansible是无国籍的,只会做你在剧本中明确描述的内容.所以你必须写一个任务来删除它.

您可以使用apt模块轻松完成此操作.

- name: Remove TIG
  apt:
    pkg: tig
    state: absent
  sudo: yes
Run Code Online (Sandbox Code Playgroud)


tas*_*oor 5

从 playbook 中删除该软件包将确保该软件包不会安装在新配置的计算机上,但如果该软件包已安装在已配置的计算机上,则不会删除该软件包。如果可能,您可以使用销毁机器vagrant destroy并创建/配置一台新机器。

如果无法销毁机器并配置一台新机器,那么您可以添加一个 ansible 任务来删除已安装的软件包。使用absentas 状态将删除包。

- name: Remove TIG
  action: apt pkg=tig state=absent
Run Code Online (Sandbox Code Playgroud)