aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2025-11-15 22:18:49 +0100
committerEgor Tensin <egor@tensin.name>2025-11-15 22:58:28 +0100
commitbf52b8ae64d43465a56a1f15d1d0247f6d0a19c2 (patch)
tree33077058b6f73e98389ff6ca3d8451506b84570b
parentpacman: split into pacman & pacman_install (diff)
downloadinfra-ansible-bf52b8ae64d43465a56a1f15d1d0247f6d0a19c2.tar.gz
infra-ansible-bf52b8ae64d43465a56a1f15d1d0247f6d0a19c2.zip
apt: split into apt & apt_install
-rw-r--r--roles/apt/README.md4
-rw-r--r--roles/apt/defaults/main.yml1
-rw-r--r--roles/apt/tasks/main.yml7
-rw-r--r--roles/apt_install/README.md4
-rw-r--r--roles/apt_install/defaults/main.yml1
-rw-r--r--roles/apt_install/tasks/main.yml35
-rw-r--r--roles/debian_server/meta/main.yml4
7 files changed, 44 insertions, 12 deletions
diff --git a/roles/apt/README.md b/roles/apt/README.md
index da7f393..fec6412 100644
--- a/roles/apt/README.md
+++ b/roles/apt/README.md
@@ -1,7 +1,5 @@
-This role upgrades packages on Debian/Ubuntu and installs any additional
-packages.
+This role upgrades packages on Debian/Ubuntu.
* Upgrade all installed packages (apt dist-upgrade).
* Clean up dependencies that are no longer needed (apt autoremove).
-* Optionally, install any additional apt packages required on this host.
* Optionally, configure unattended-upgrades to install latest security fixes.
diff --git a/roles/apt/defaults/main.yml b/roles/apt/defaults/main.yml
index 2c0fef4..63fe41d 100644
--- a/roles/apt/defaults/main.yml
+++ b/roles/apt/defaults/main.yml
@@ -1,4 +1,3 @@
-apt_packages: []
apt_unattended_upgrades: false
apt_unattended_reboot: true
apt_unattended_reboot_time: "02:00"
diff --git a/roles/apt/tasks/main.yml b/roles/apt/tasks/main.yml
index 871d055..b740c2b 100644
--- a/roles/apt/tasks/main.yml
+++ b/roles/apt/tasks/main.yml
@@ -14,13 +14,6 @@
autoremove: true
purge: true
-- name: Install packages
- become: true
- ansible.builtin.package:
- name: '{{ apt_packages }}'
- state: present
- when: apt_packages | length > 0
-
- name: Configure unattended-upgrades
ansible.builtin.include_tasks: unattended_upgrades.yml
when: apt_unattended_upgrades
diff --git a/roles/apt_install/README.md b/roles/apt_install/README.md
new file mode 100644
index 0000000..304543c
--- /dev/null
+++ b/roles/apt_install/README.md
@@ -0,0 +1,4 @@
+This installs packages using apt.
+
+* It's more useful than the stock plugin because it prints the list of changed
+ packages.
diff --git a/roles/apt_install/defaults/main.yml b/roles/apt_install/defaults/main.yml
new file mode 100644
index 0000000..3fa7aa4
--- /dev/null
+++ b/roles/apt_install/defaults/main.yml
@@ -0,0 +1 @@
+apt_install_packages: []
diff --git a/roles/apt_install/tasks/main.yml b/roles/apt_install/tasks/main.yml
new file mode 100644
index 0000000..5daa0f4
--- /dev/null
+++ b/roles/apt_install/tasks/main.yml
@@ -0,0 +1,35 @@
+- name: Get dpkg.log
+ ansible.builtin.shell: |
+ set -o pipefail && \
+ grep ' install \| upgrade \| remove \| purge ' /var/log/dpkg.log \
+ | cut -d ' ' -f 3-5
+ vars:
+ ansible_shell_executable: /bin/bash
+ register: dpkg_log1
+ changed_when: false
+
+- name: Install packages
+ become: true
+ ansible.builtin.package:
+ name: '{{ apt_install_packages }}'
+ state: present
+
+- name: Get dpkg.log
+ ansible.builtin.shell: |
+ set -o pipefail && \
+ grep ' install \| upgrade \| remove \| purge ' /var/log/dpkg.log \
+ | cut -d ' ' -f 3-5
+ vars:
+ ansible_shell_executable: /bin/bash
+ register: dpkg_log2
+ changed_when: false
+
+- name: Show installed packages
+ ansible.builtin.debug:
+ var: dpkg_log_diff
+ when: dpkg_len_diff > 0
+ vars:
+ dpkg_log1_len: '{{ dpkg_log1.stdout_lines | length }}'
+ dpkg_log2_len: '{{ dpkg_log2.stdout_lines | length }}'
+ dpkg_len_diff: '{{ dpkg_log2_len - dpkg_log1_len }}'
+ dpkg_log_diff: '{{ dpkg_log2.stdout_lines[-dpkg_len_diff:] }}'
diff --git a/roles/debian_server/meta/main.yml b/roles/debian_server/meta/main.yml
index 6ecaff6..563c774 100644
--- a/roles/debian_server/meta/main.yml
+++ b/roles/debian_server/meta/main.yml
@@ -1,8 +1,10 @@
dependencies:
- role: apt
vars:
- apt_packages: '{{ debian_server_packages }}'
apt_unattended_upgrades: '{{ debian_server_unattended_upgrades }}'
+ - role: apt_install
+ vars:
+ apt_install_packages: '{{ debian_server_packages }}'
- role: locale
vars:
locale_list: '{{ debian_server_locale_list }}'