diff options
| -rw-r--r-- | ansible-2.j2 | 19 | ||||
| -rw-r--r-- | ansible-2.yml | 71 | 
2 files changed, 90 insertions, 0 deletions
diff --git a/ansible-2.j2 b/ansible-2.j2 new file mode 100644 index 0000000..746d5bf --- /dev/null +++ b/ansible-2.j2 @@ -0,0 +1,19 @@ +{# +# vim:syntax=jinja +#} +{% if vars.ans is defined %} +{% if ansible_distribution_version is defined and ansible_distribution_version == "11" %} +# Debian 11 ({{vars.ans.11.debname}}) +deb http://ppa.launchpad.net/ansible/ansible/ubuntu {{vars.ans.11.release}} main +{% elif ansible_distribution_version is defined and ansible_distribution_version == "10" %} +# Debian 10 ({{vars.ans.10.debname}}) +deb http://ppa.launchpad.net/ansible/ansible/ubuntu {{vars.ans.10.release}} main +{% elif ansible_distribution_version is defined and ansible_distribution_version == "9" %} +# Debian 9 ({{vars.ans.9.debname}}) +deb http://ppa.launchpad.net/ansible/ansible/ubuntu {{vars.ans.9.release}} main +{% else %} +# NO REPO KNOWN FOR THIS DEBIAN RELEASE +{% endif %} +{% else %} +# RS.ANS WAS NOT DEFINED +{% endif %} diff --git a/ansible-2.yml b/ansible-2.yml new file mode 100644 index 0000000..f3fc1ce --- /dev/null +++ b/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: "./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"  | 
