删除包ansible playbook
Remove package ansible playbook
我有一个使用 Vagrant 创建并使用 Ansible 配置的 EC2 实例。
我的任务是使用 apt
安装 2 个包。
---
- name: Install GIT & TIG
action: apt pkg={{ item }} state=installed
with_items:
- git
- tig
我现在想要 delete/remove tig
来自我的实例。我已将它从我的剧本中删除并且我有 运行 vagrant provision
但包裹仍然存在。
我该怎么做?
从 playbook 中删除包将确保该包不会安装在新配置的计算机上,但如果已经安装在已配置的计算机上,则不会删除该包。如果可能的话,你可以使用 vagrant destroy
和 create/provision 一个新的机器来销毁机器。
如果无法销毁机器并提供新机器,那么您可以添加一个 ansible 任务来删除已安装的软件包。使用 absent
作为状态将删除包。
- name: Remove TIG
action: apt pkg=tig state=absent
当您从 playbook 中删除包时,Ansible 无法自动删除它们。 Ansible 是 无状态的 。这意味着它不会跟踪它所做的事情,因此不知道它在最近的运行中做了什么,或者你的 playbook/role 是否已被修改。 Ansible 只会执行您在 playbook/role 中明确描述的操作。所以你必须写一个任务来删除它。
您可以使用 apt 模块轻松完成此操作。
- name: Remove TIG
apt:
pkg: tig
state: absent
become: true
Sudo 现已弃用,不再推荐使用。请改用 become。
- name: Remove TIG
apt:
pkg: tig
state: absent
become: yes
我有一个使用 Vagrant 创建并使用 Ansible 配置的 EC2 实例。
我的任务是使用 apt
安装 2 个包。
---
- name: Install GIT & TIG
action: apt pkg={{ item }} state=installed
with_items:
- git
- tig
我现在想要 delete/remove tig
来自我的实例。我已将它从我的剧本中删除并且我有 运行 vagrant provision
但包裹仍然存在。
我该怎么做?
从 playbook 中删除包将确保该包不会安装在新配置的计算机上,但如果已经安装在已配置的计算机上,则不会删除该包。如果可能的话,你可以使用 vagrant destroy
和 create/provision 一个新的机器来销毁机器。
如果无法销毁机器并提供新机器,那么您可以添加一个 ansible 任务来删除已安装的软件包。使用 absent
作为状态将删除包。
- name: Remove TIG
action: apt pkg=tig state=absent
当您从 playbook 中删除包时,Ansible 无法自动删除它们。 Ansible 是 无状态的 。这意味着它不会跟踪它所做的事情,因此不知道它在最近的运行中做了什么,或者你的 playbook/role 是否已被修改。 Ansible 只会执行您在 playbook/role 中明确描述的操作。所以你必须写一个任务来删除它。
您可以使用 apt 模块轻松完成此操作。
- name: Remove TIG
apt:
pkg: tig
state: absent
become: true
Sudo 现已弃用,不再推荐使用。请改用 become。
- name: Remove TIG
apt:
pkg: tig
state: absent
become: yes