From 4814d7d6aeac0053d4fcf9d6ffa5be5d41e41fb3 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 8 Apr 2021 00:28:20 +0200 Subject: [PATCH] [apt] Pin some packages from other versions Signed-off-by: Yohann D'ANELLO --- group_vars/debian.yml | 2 ++ roles/apt/tasks/main.yml | 11 +++++++++++ roles/apt/templates/apt/preferences.d/pin.list.j2 | 12 ++++++++++++ roles/apt/templates/apt/sources.list.d/pin.list.j2 | 3 +++ 4 files changed, 28 insertions(+) create mode 100644 roles/apt/templates/apt/preferences.d/pin.list.j2 create mode 100644 roles/apt/templates/apt/sources.list.d/pin.list.j2 diff --git a/group_vars/debian.yml b/group_vars/debian.yml index 2feb4f1..3daeefd 100644 --- a/group_vars/debian.yml +++ b/group_vars/debian.yml @@ -2,3 +2,5 @@ glob_apt: mirror: "http://mirror.crans.org/" extra_repositories: [] + pin: + bullseye: [] diff --git a/roles/apt/tasks/main.yml b/roles/apt/tasks/main.yml index 656b865..6f56078 100644 --- a/roles/apt/tasks/main.yml +++ b/roles/apt/tasks/main.yml @@ -25,3 +25,14 @@ group: root mode: 0644 loop: "{{ apt.extra_repositories }}" + +- name: Configure pin from future distributions + template: + src: "apt/{{ item[0] }}.d/pin.list.j2" + dest: "/etc/apt/{{ item[0] }}.d/{{ item[1].key }}.list" + owner: root + group: root + mode: 0644 + with_nested: + - ["sources.list", "preferences"] + - "{{ apt.pin|dict2items }}" diff --git a/roles/apt/templates/apt/preferences.d/pin.list.j2 b/roles/apt/templates/apt/preferences.d/pin.list.j2 new file mode 100644 index 0000000..11e6fb0 --- /dev/null +++ b/roles/apt/templates/apt/preferences.d/pin.list.j2 @@ -0,0 +1,12 @@ +{{ ansible_header | comment }} + + +Package: * +Pin: release n={{ item[1].key }} +Pin-Priority: 1 +{% for package in item[1].value -%} + +Package: {{ package }} +Pin: release n={{ item[1].key }} +Pin-Priority: 900 +{% endfor -%} diff --git a/roles/apt/templates/apt/sources.list.d/pin.list.j2 b/roles/apt/templates/apt/sources.list.d/pin.list.j2 new file mode 100644 index 0000000..4f9ef9b --- /dev/null +++ b/roles/apt/templates/apt/sources.list.d/pin.list.j2 @@ -0,0 +1,3 @@ +{{ ansible_header | comment }} + +deb {{ apt.mirror }}debian {{ item[1].key }} main contrib non-free