Ansible:打印由 apt autoremove 删除的软件包列表

Ansible:打印由 apt autoremove 删除的软件包列表

我在我的剧本中使用 apt autoremove:

- name: remove autoinstalled crap
  apt:
    autoremove: yes

我想在 的输出中看到已删除软件包的列表ansible-playbook。可以吗?

答案1

没有标准程序。必须创建已删除包的列表。例如,注册返回的数据

    - name: remove autoinstalled crap
      apt:
        autoremove: yes
      register: result

选择删除软件包的行和地图 regex_replace第二组应该是被删除的软件包的名称

    - set_fact:
        pkg_removed: "{{ result.stdout_lines|
                         select('regex', '^Removing (.*)$')|
                         map('regex_replace', '^(.*?) (.*?) (.*)$', '\\2')|
                         list }}"
    - debug:
        var: pkg_removed

给予(在最近更新 Ubuntu 20.04 之后)

  pkg_removed:
  - linux-headers-5.4.0-29-generic
  - linux-headers-5.4.0-29
  - linux-headers-5.4.0-31-generic
  - linux-headers-5.4.0-31
  - linux-modules-extra-5.4.0-29-generic
  - linux-image-5.4.0-29-generic
  - linux-modules-extra-5.4.0-31-generic
  - linux-image-5.4.0-31-generic
  - linux-modules-5.4.0-29-generic
  - linux-modules-5.4.0-31-generic

相关内容