git.lirion.de

Of git, get, and gud

aboutsummaryrefslogtreecommitdiffstats
path: root/debian-ansible-2.yml
diff options
context:
space:
mode:
Diffstat (limited to 'debian-ansible-2.yml')
-rw-r--r--debian-ansible-2.yml71
1 files changed, 71 insertions, 0 deletions
diff --git a/debian-ansible-2.yml b/debian-ansible-2.yml
new file mode 100644
index 0000000..0780674
--- /dev/null
+++ b/debian-ansible-2.yml
@@ -0,0 +1,71 @@
+# preliminary: Debian ships with ansible 2.7 (buster) and at least 2.10 (bullseye). Well, in case
+# of ansible, Ubuntu is not bleeding edge, so let's get our stuff there. For now, while we don't have
+# a more sophisticated package distribution at hand.
+---
+- hosts: "{{runtime_hosts|default('CHANGE_ME')}}"
+ gather_facts: "no"
+ vars:
+ ans:
+ 11:
+ release: "focal"
+ debname: "bullseye"
+ 10:
+ release: "bionic"
+ debname: "buster"
+ 9:
+ release: "xenial"
+ debname: "stretch"
+ key:
+ id: "93C4A3FD7BB9C367"
+ tasks:
+ - name: Gather facts subset
+ setup:
+ filter: "ansible_distribution*"
+ - name: Acquire Debian hosts
+ debug:
+ msg: "System is {{ansible_distribution}} {{ansible_distribution_version}}, checking in."
+ when:
+ - ansible_distribution == "Debian"
+ - ansible_distribution_version == "11" or ansible_distribution_version == "10" or ansible_distribution_version == "9"
+ changed_when: true
+ notify:
+ - "deb all"
+ handlers:
+ - name: Create ansible repository file
+ template:
+ src: "./debian-ansible-2.j2"
+ dest: "/etc/apt/sources.list.d/ansible-ubuntu.list"
+ owner: root
+ group: root
+ mode: "0644"
+ become: true
+ listen:
+ - "deb all"
+ - name: Import repository key
+ apt_key:
+ id: "{{ans.key.id}}"
+ keyserver: keyserver.ubuntu.com
+ state: "present"
+ become: true
+ listen: "deb all"
+ - name: Update apt cache
+ apt:
+ update_cache: "yes"
+ become: true
+ listen: "deb all"
+ - name: Remove ansible
+ # just upgrading stuff ended up in a broken installation due to a file being locked mutually between old
+ # and new package on debian 11. apt -f install fixed it without flaws, however - do we want that here? no.
+ apt:
+ name: "ansible"
+ state: "absent"
+ become: true
+ listen: "deb all"
+ when: ansible_distribution_version == "11"
+ - name: Install ansible (again)
+ apt:
+ name: "ansible"
+ state: "latest"
+ install_recommends: "yes"
+ become: true
+ listen: "deb all"