From b690ae25b0a1f297ccc9e41180dd73ead5f8e8ef Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Sat, 29 Aug 2020 21:10:22 +0200 Subject: [PATCH] bundles/apt: use node.os and node.os_version to determine settings --- .../apt/files/apt.conf-unattended-upgrades | 8 +++++-- bundles/apt/files/sources.list-buster | 3 +++ bundles/apt/items.py | 22 +++++++++++++++++-- 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 bundles/apt/files/sources.list-buster diff --git a/bundles/apt/files/apt.conf-unattended-upgrades b/bundles/apt/files/apt.conf-unattended-upgrades index 8dc4f10..322ba16 100644 --- a/bundles/apt/files/apt.conf-unattended-upgrades +++ b/bundles/apt/files/apt.conf-unattended-upgrades @@ -1,6 +1,10 @@ Unattended-Upgrade::Origins-Pattern { - "origin=Debian,codename=${node.metadata['os_release']},label=Debian"; - "origin=Debian,codename=${node.metadata['os_release']},label=Debian-Security"; + "origin=Debian,codename=${os_release},label=Debian"; + "origin=Debian,codename=${os_release},label=Debian-Security"; + +% if node_has_backports: + "a=${os_release}-backports,n=${os_release}-backports"; +% endif // External packages % for item in sorted(data.get('origins', set())): diff --git a/bundles/apt/files/sources.list-buster b/bundles/apt/files/sources.list-buster new file mode 100644 index 0000000..dec296f --- /dev/null +++ b/bundles/apt/files/sources.list-buster @@ -0,0 +1,3 @@ +deb http://deb.debian.org/debian/ buster main non-free contrib +deb http://security.debian.org/debian-security buster/updates main contrib non-free +deb http://deb.debian.org/debian/ buster-updates main contrib non-free diff --git a/bundles/apt/items.py b/bundles/apt/items.py index b8367df..f5b3e05 100644 --- a/bundles/apt/items.py +++ b/bundles/apt/items.py @@ -1,3 +1,12 @@ +supported_os = { + 'debian': { + 10: 'buster', + }, +} + +assert supported_os[node.os][node.os_version[0]], '{}: OS {} {} is not supported by bundle:apt'.format(node.name, node.os, node.os_version) + + actions = { 'apt_update': { 'command': 'apt-get update', @@ -13,7 +22,11 @@ files = { '/etc/apt/apt.conf.d/50unattended-upgrades': { 'content_type': 'mako', 'source': 'apt.conf-unattended-upgrades', - 'context': {'data': node.metadata.get('apt', {}).get('unattended-upgrades', {})} + 'context': { + 'data': node.metadata.get('apt', {}).get('unattended-upgrades', {}), + 'node_has_backports': ('backports' in node.metadata.get('apt', {}).get('repos', {})), + 'os_release': supported_os[node.os][node.os_version[0]], + } }, '/etc/apt/apt.conf.d/20auto-upgrades': { 'source': 'apt.conf-auto-upgrades', @@ -27,10 +40,15 @@ files = { '/var/lib/cloud': { 'delete': True, }, + '/etc/apt/sources.list': { + 'source': 'sources.list-{}'.format(supported_os[node.os][node.os_version[0]]), + }, } directories = { - '/etc/apt/sources.list.d': {}, + '/etc/apt/sources.list.d': { + 'purge': True, + }, } pkg_apt = {