如何使用Ansible通过apt自动删除不需要的软件包依赖项

时间:2020-01-09 10:39:50  来源:igfitidea点击:

我正在尝试使用ansapt apt autoremove选项,但是它不起作用。
如何使用apt命令/apt-get命令删除所有未使用的Linux内核和不需要的软件包依赖性。
如何在Ansible的远程Ubuntu/Debian Linux服务器上运行sudo apt-get autoremove
要为Debian/Ubuntu和朋友管理apt软件包,请使用Ansible的apt模块。

autoremove用于删除为满足其他软件包的依赖关系而自动安装的软件包,由于依赖关系发生了变化或与此同时需要删除它们的软件包,因此不再需要它们。

为此,请按以下方式运行apt命令或apt-get命令:

$ sudo apt autoremove

或者

$ sudo apt-get autoremove

要在Debian/Ubuntu Linux上删除未使用的Linux内核,请使用:

$ sudo apt -y --purge autoremove
## 或者
$ sudo apt-get -y --purge autoremove

使用Ansible运行sudo apt-get autoremove

如下更新您的yml文件:

- name: Clean unwanted olderstuff
            apt:
                    autoremove: yes
                    purge: yes

其中:

  • autoremove:如果是,请为除build-dep之外的所有模块状态删除未使用的依赖包。它也可以用作唯一选项。您必须使用Ansible 2.1版。
  • purge:如果模块状态设置为yes,这将强制清除配置文件。

这是我的vpn.yml文件:

--
- hosts: vpn
  become: true
  become_user: root
  tasks:
          - name: Updating host using apt
            apt:
                    update_cache: yes
                    upgrade: dist
          - name: Update kernel to spefic version
            apt:
                    name: "{{ k_ver }}"
                    state: latest
          - name: Clean unwanted olderstuff
            apt:
                    autoremove: yes
                    purge: yes

我的主机文件:

[vpn:vars]
ansible_user=Hyman
k_ver="linux-image-4.10.0-38-generic"

[vpn]
blr-vpn
mum-vpn
tx-vpn
tok-vpn
del-vpn
lon-vpn

如下运行:

$ ansible-playbook -i hosts vpn.yml

或者

$ export ANSIBLE_HOSTS=~/opshelper/hosts
$ ansible-playbook vpn.yml

关于在基于LXD的vm上运行apt autoremove的说明

您可以按照以下方式更新yml文件,以便在名为db,proxy和www的三个vm上运行相同的命令,如下所示:

- name: Run lxc apt-autoremove on cbz01 lxd host per vm
            command: /usr/bin/lxc exec {{ item }} -- /usr/bin/apt-get --purge -y autoremove
            with_items:
                    - db
                    - proxy
                    - www