From 5d09fc43a8d44e9456311e06bbc48fb9f63d5a8c Mon Sep 17 00:00:00 2001 From: Markus Hauschild Date: Sun, 26 Mar 2017 21:48:44 +0200 Subject: [PATCH] Add apt role (adpoted from FFHB) --- roles/apt/files/apt-checkrestart.conf | 1 + roles/apt/files/apt-periodic.conf | 7 ++ roles/apt/files/apt-recommends.conf | 1 + roles/apt/files/unattended-upgrades-dpkg.conf | 4 + roles/apt/files/unattended-upgrades.conf | 84 +++++++++++++++++++ roles/apt/tasks/main.yml | 28 +++++++ site.yml | 1 + 7 files changed, 126 insertions(+) create mode 100644 roles/apt/files/apt-checkrestart.conf create mode 100644 roles/apt/files/apt-periodic.conf create mode 100644 roles/apt/files/apt-recommends.conf create mode 100644 roles/apt/files/unattended-upgrades-dpkg.conf create mode 100644 roles/apt/files/unattended-upgrades.conf create mode 100644 roles/apt/tasks/main.yml diff --git a/roles/apt/files/apt-checkrestart.conf b/roles/apt/files/apt-checkrestart.conf new file mode 100644 index 0000000..c5a7302 --- /dev/null +++ b/roles/apt/files/apt-checkrestart.conf @@ -0,0 +1 @@ +DPkg::Post-Invoke { "if [ -x /usr/sbin/checkrestart ]; then checkrestart; fi"; }; diff --git a/roles/apt/files/apt-periodic.conf b/roles/apt/files/apt-periodic.conf new file mode 100644 index 0000000..33bd315 --- /dev/null +++ b/roles/apt/files/apt-periodic.conf @@ -0,0 +1,7 @@ +APT::Periodic { + Enable "1"; + Update-Package-Lists "1"; + Download-Upgradeable-Packages "1"; + Unattended-Upgrade "1"; + AutocleanInterval "7"; +} diff --git a/roles/apt/files/apt-recommends.conf b/roles/apt/files/apt-recommends.conf new file mode 100644 index 0000000..96d6728 --- /dev/null +++ b/roles/apt/files/apt-recommends.conf @@ -0,0 +1 @@ +APT::Install-Recommends "false"; diff --git a/roles/apt/files/unattended-upgrades-dpkg.conf b/roles/apt/files/unattended-upgrades-dpkg.conf new file mode 100644 index 0000000..5f58776 --- /dev/null +++ b/roles/apt/files/unattended-upgrades-dpkg.conf @@ -0,0 +1,4 @@ +Dpkg::Options { + "--force-confdef"; + "--force-confold"; +} diff --git a/roles/apt/files/unattended-upgrades.conf b/roles/apt/files/unattended-upgrades.conf new file mode 100644 index 0000000..a40aabe --- /dev/null +++ b/roles/apt/files/unattended-upgrades.conf @@ -0,0 +1,84 @@ +// Unattended-Upgrade::Origins-Pattern controls which packages are +// upgraded. +// +// Lines below have the format format is "keyword=value,...". A +// package will be upgraded only if the values in its metadata match +// all the supplied keywords in a line. (In other words, omitted +// keywords are wild cards.) The keywords originate from the Release +// file, but several aliases are accepted. The accepted keywords are: +// a,archive,suite (eg, "stable") +// c,component (eg, "main", "crontrib", "non-free") +// l,label (eg, "Debian", "Debian-Security") +// o,origin (eg, "Debian", "Unofficial Multimedia Packages") +// n,codename (eg, "jessie", "jessie-updates") +// site (eg, "http.debian.net") +// The available values on the system are printed by the command +// "apt-cache policy", and can be debugged by running +// "unattended-upgrades -d" and looking at the log file. +// +// Within lines unattended-upgrades allows 2 macros whose values are +// derived from /etc/debian_version: +// ${distro_id} Installed origin. +// ${distro_codename} Installed codename (eg, "jessie") +Unattended-Upgrade::Origins-Pattern { + // Archive or Suite based matching: + // Note that this will silently match a different release after + // migration to the specified archive (e.g. testing becomes the + // new stable). + "origin=Debian,codename=${distro_codename}"; + "origin=Debian,codename=${distro_codename}-updates"; + "origin=Debian,codename=${distro_codename}-proposed-updates"; + "origin=Debian,codename=${distro_codename},label=Debian-Security"; +}; + +// List of packages to not update (regexp are supported) +Unattended-Upgrade::Package-Blacklist { +// "vim"; +// "libc6"; +// "libc6-dev"; +// "libc6-i686"; +}; + +// This option allows you to control if on a unclean dpkg exit +// unattended-upgrades will automatically run +// dpkg --force-confold --configure -a +// The default is true, to ensure updates keep getting installed +Unattended-Upgrade::AutoFixInterruptedDpkg "true"; + +// Split the upgrade into the smallest possible chunks so that +// they can be interrupted with SIGUSR1. This makes the upgrade +// a bit slower but it has the benefit that shutdown while a upgrade +// is running is possible (with a small delay) +Unattended-Upgrade::MinimalSteps "true"; + +// Install all unattended-upgrades when the machine is shuting down +// instead of doing it in the background while the machine is running +// This will (obviously) make shutdown slower +Unattended-Upgrade::InstallOnShutdown "false"; + +// Send email to this address for problems or packages upgrades +// If empty or unset then no email is sent, make sure that you +// have a working mail setup on your system. A package that provides +// 'mailx' must be installed. E.g. "user@example.com" +Unattended-Upgrade::Mail "root"; + +// Set this value to "true" to get emails only on errors. Default +// is to always send a mail if Unattended-Upgrade::Mail is set +Unattended-Upgrade::MailOnlyOnError "true"; + +// Do automatic removal of new unused dependencies after the upgrade +// (equivalent to apt-get autoremove) +Unattended-Upgrade::Remove-Unused-Dependencies "true"; + +// Automatically reboot *WITHOUT CONFIRMATION* if +// the file /var/run/reboot-required is found after the upgrade +Unattended-Upgrade::Automatic-Reboot "false"; + +// If automatic reboot is enabled and needed, reboot at the specific +// time instead of immediately +// Default: "now" +//Unattended-Upgrade::Automatic-Reboot-Time "02:00"; + +// Use apt bandwidth limit feature, this example limits the download +// speed to 70kb/sec +Acquire::http::Dl-Limit "200"; diff --git a/roles/apt/tasks/main.yml b/roles/apt/tasks/main.yml new file mode 100644 index 0000000..490c916 --- /dev/null +++ b/roles/apt/tasks/main.yml @@ -0,0 +1,28 @@ +--- + +- name: Configure apt not to install recommends packages + copy: src=apt-recommends.conf dest=/etc/apt/apt.conf.d/40recommends + +- name: Install apt https transport plugin + apt: name=apt-transport-https + +- name: Install debian-goodies for checkrestart + apt: name={{ item }} + with_items: + - debian-goodies + - lsof + +- name: Configure periodic apt updates + copy: src=apt-periodic.conf dest=/etc/apt/apt.conf.d/10periodic + +- name: Install unattended-upgrades + apt: name=unattended-upgrades + +- name: Configure unattended-upgrades + copy: src=unattended-upgrades.conf dest=/etc/apt/apt.conf.d/50unattended-upgrades + +- name: Configure dpkg to run with unattended-upgrades + copy: src=unattended-upgrades-dpkg.conf dest=/etc/apt/apt.conf.d/51unattended-upgrades + +- name: Configure apt to run checkrestart after updates + copy: src=apt-checkrestart.conf dest=/etc/apt/apt.conf.d/99checkrestart diff --git a/site.yml b/site.yml index 8953774..94bd005 100644 --- a/site.yml +++ b/site.yml @@ -4,6 +4,7 @@ hosts: all roles: - common + - apt - ntp - name: Setup gateway servers