--- - name: Merge package lists ansible.builtin.set_fact: packages_merged: "{{ packages_debian + packages_redhat + packages_ubuntu }}" tags: - packages - name: Configure needrestart tags: - needrestart - packages block: - name: Pre register needrestart configuration directory become: true ansible.builtin.stat: path: /etc/needrestart/conf.d register: needrestart_directory_created - name: Create needrestart directory become: true ansible.builtin.file: path: /etc/needrestart/conf.d state: directory owner: root group: root mode: "0755" recurse: true when: ("needrestart" in packages_merged) and not needrestart_directory_created.stat.exists - name: Stat needrestart configuration directory become: true ansible.builtin.stat: path: /etc/needrestart/conf.d register: needrestart_directory - name: Get needrestart restart value ansible.builtin.command: cmd: grep -Rqo "$nrconf{restart} = 'l';" /etc/needrestart/conf.d/ register: needrestart_restart_set when: needrestart_directory.stat.exists changed_when: needrestart_restart_set.rc != 0 failed_when: needrestart_restart_set.rc > 1 - name: Configure needrestart become: true ansible.builtin.lineinfile: path: /etc/needrestart/conf.d/00-restart.conf line: "$nrconf{restart} = 'l';" create: true owner: root group: root mode: "0644" when: needrestart_directory.stat.exists and needrestart_restart_set.rc != 0 - name: Debian family package installation become: true ansible.builtin.apt: name: "{{ packages_debian }}" state: present install_recommends: false when: ansible_os_family == "Debian" tags: - packages - CIS-UBUNTU2004-1.6.1.1 - CIS-UBUNTU2004-4.1.1.1 - CIS-UBUNTU2004-4.2.1.1 - M1049 - UBTU-20-010005 - name: Ubuntu package installation become: true ansible.builtin.apt: name: "{{ packages_ubuntu }}" state: present install_recommends: false when: ansible_distribution == "Ubuntu" tags: - packages - name: Ubuntu update-notifier-common package installation become: true ansible.builtin.apt: name: "update-notifier-common" state: present install_recommends: false when: ansible_distribution == "Ubuntu" tags: - packages - name: RedHat family package installation become: true ansible.builtin.dnf: name: "{{ packages_redhat }}" state: present when: ansible_os_family == "RedHat" notify: - Enable haveged tags: - packages - CCE-80847-7 - CCE-81043-2 - CCE-82859-0 - CCE-83303-8 - M1049 - name: Run apt purge become: true ansible.builtin.apt: name: "{{ packages_blocklist }}" state: absent purge: true when: ansible_os_family == "Debian" register: apt_purge failed_when: apt_purge is not success and not "No package" in apt_purge.msg tags: - packages - M1042 - name: Generic package removal become: true ansible.builtin.package: name: "{{ packages_blocklist }}" state: absent register: package_removal failed_when: package_removal is not success and not "No package" in package_removal.msg tags: - packages - CCE-80873-3 - CCE-82182-7 - CCE-82184-3 - CCE-82436-7 - CIS-UBUNTU2004-1.1.23 - CIS-UBUNTU2004-1.5.3 - CIS-UBUNTU2004-2.1.3 - CIS-UBUNTU2004-2.1.16 - CIS-UBUNTU2004-2.2.2 - CIS-UBUNTU2004-2.2.3 - CIS-UBUNTU2004-2.2.4 - CIS-UBUNTU2004-2.2.6 - M1042 - name: VirtualBox guest packages installation become: true ansible.builtin.apt: name: "{{ packages }}" state: present install_recommends: false vars: packages: - virtualbox-guest-dkms - virtualbox-guest-utils register: virtualbox_packages when: ansible_virtualization_type == "VirtualBox" and ansible_distribution == "Ubuntu" failed_when: virtualbox_packages is not success and not "No package matching" in virtualbox_packages.msg tags: - packages - virtualbox - name: VMWare package installation become: true ansible.builtin.package: name: open-vm-tools state: present when: ansible_virtualization_type == "VMware" tags: - packages - vmware - name: QEMU package installation become: true ansible.builtin.package: name: qemu-guest-agent state: present when: ansible_system_vendor == "QEMU" tags: - packages - qemu - name: Install rng-tools become: true ansible.builtin.package: name: rng-tools state: present when: ansible_local.cpuinfo.rdrand tags: - rng-tools - packages - CCE-82968-9 - name: Stat sysstat default become: true ansible.builtin.stat: path: /etc/default/sysstat register: default_sysstat tags: - packages - sysstat - name: Enable sysstat become: true ansible.builtin.lineinfile: regexp: "^ENABLED" line: 'ENABLED="true"' dest: /etc/default/sysstat mode: "0644" state: present create: false backrefs: true when: default_sysstat.stat.exists tags: - packages - sysstat - name: Remove unneeded Debian dependencies become: true ansible.builtin.apt: autoclean: true autoremove: true when: ansible_os_family == "Debian" tags: - packages