Last active
July 18, 2024 08:47
-
-
Save roib20/27fde10af195cee1c1f8ac5f68be7e9b to your computer and use it in GitHub Desktop.
Example usages of the new `deb822_repository` Ansible module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: localhost | |
connection: local | |
gather_facts: true | |
tasks: | |
- name: Add APT repositories | |
when: ansible_os_family == 'Debian' | |
become: true | |
block: | |
- name: Add VSCode APT repository | |
ansible.builtin.deb822_repository: | |
name: vscode | |
types: [deb] | |
uris: "https://packages.microsoft.com/repos/code" | |
signed_by: "https://packages.microsoft.com/keys/microsoft.asc" | |
suites: [stable] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add google APT repository | |
ansible.builtin.deb822_repository: | |
name: google | |
types: [deb] | |
uris: | |
- "http://dl.google.com/linux/chrome/deb" | |
- "http://dl.google.com/linux/earth/deb" | |
signed_by: "https://dl.google.com/linux/linux_signing_key.pub" | |
suites: [stable] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add Kubernetes APT repository | |
ansible.builtin.deb822_repository: | |
name: kubernetes | |
types: [deb] | |
uris: "https://apt.kubernetes.io" | |
signed_by: "https://packages.cloud.google.com/apt/doc/apt-key.gpg" | |
suites: [kubernetes-xenial] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add google-cloud-cli APT repository | |
ansible.builtin.deb822_repository: | |
name: google-cloud-cli | |
types: [deb] | |
uris: "https://packages.cloud.google.com/apt" | |
signed_by: "https://packages.cloud.google.com/apt/doc/apt-key.gpg" | |
suites: [cloud-sdk] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add Microsoft prod APT repository (Debian) | |
when: ansible_distribution == 'Debian' | |
ansible.builtin.deb822_repository: | |
name: packages-microsoft-com-prod | |
types: [deb] | |
uris: "https://packages.microsoft.com/{{ ansible_distribution|lower }}/{{ ansible_distribution_major_version }}/prod" | |
signed_by: "https://packages.microsoft.com/keys/microsoft.asc" | |
suites: ["{{ ansible_distribution_release|lower }}"] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add Microsoft prod APT repository (Ubuntu) | |
when: ansible_distribution == 'Ubuntu' | |
ansible.builtin.deb822_repository: | |
name: packages-microsoft-com-prod | |
types: [deb] | |
uris: "https://packages.microsoft.com/{{ ansible_distribution|lower }}/{{ ansible_distribution_version }}/prod" | |
signed_by: "https://packages.microsoft.com/keys/microsoft.asc" | |
suites: ["{{ ansible_distribution_release|lower }}"] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add Tailscale stable APT repository | |
ansible.builtin.deb822_repository: | |
name: tailscale-stable | |
types: [deb] | |
uris: "https://pkgs.tailscale.com/stable/{{ ansible_distribution|lower }}" | |
signed_by: "https://pkgs.tailscale.com/stable/{{ ansible_distribution|lower }}/{{ ansible_distribution_release|lower }}.asc" | |
suites: ["{{ ansible_distribution_release|lower }}"] | |
components: [main] | |
state: present | |
enabled: yes | |
- name: Add Hashicorp Stable APT repository | |
ansible.builtin.deb822_repository: | |
name: hashicorp | |
types: [deb] | |
uris: "https://apt.releases.hashicorp.com" | |
signed_by: "https://apt.releases.hashicorp.com/gpg" | |
suites: ["{{ ansible_distribution_release|lower }}"] | |
components: [main] | |
state: present | |
enabled: yes |
Thank you @roib20
I now switched to the new style.
Just too add another example using google repos (gVisor in my example):
- name: gVisor repository
ansible.builtin.deb822_repository:
name: gvisor
types: [deb]
uris: https://storage.googleapis.com/gvisor/releases
signed_by: "https://gvisor.dev/archive.key"
components: [main]
suites: [release]
- name: Manage PHP PPA repository (deb822_repository)
ansible.builtin.deb822_repository:
state: present
enabled: true
name: php
uris: [https://ppa.launchpadcontent.net/ondrej/php/ubuntu]
signed_by: "{{ lookup('file', 'php_ppa.asc') }}"
types: [deb]
suites: ["{{ ansible_facts['distribution_release'] }}"]
components: [main]
File php_ppa.asc
:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: Hostname:
Version: Hockeypuck 2.2
xo0ESX35nAEEALKDCUDVXvmW9n+T/+3G1DnTpoWh9/1xNaz/RrUH6fQKhHr568F8
hfnZP/2CGYVYkW9hxP9LVW9IDvzcmnhgIwK+ddeaPZqh3T/FM4OTA7Q78HSvR81m
Jpf2iMLm/Zvh89ZsmP2sIgZuARiaHo8lxoTSLtmKXsM3FsJVlusyewHfABEBAAHN
H0xhdW5jaHBhZCBQUEEgZm9yIE9uZMWZZWogU3Vyw73CtgQTAQIAIAUCSX35nAIb
AwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEE9OoKrlJnpsQjYD/jW1NlIFAlT6
EvF2xfVbkhERii9MapjaUsSso4XLCEmZdEGX54GQ01svXnrivwnd/kmhKvyxCqiN
LDY/dOaK8MK//bDI6mqdKmG8XbP2vsdsxhifNC+GH/OwaDPvn1TyYB653kwyruCG
FjEnCreZTcRUu2oBQyolORDl+BmF4DjLwsBzBBABCgAdFiEECvaBvTqO/UqmWMI/
thEcm0xImQEFAmXTV0AACgkQthEcm0xImQGTTggAhuMHGeBZlRUAsZE7jJM7Mf06
/WIhcgUfBfSFnJFlFH+xdEe/GFYyVk9kingDsPh90Ecnt4n8DJHTlsuUV1+SPBIO
JfbQTUjx1n/+Ck+TVKzRByvrpRXtiZQ214m3zbhZpme2eBBMItZByjG7g925NUIq
rL+R5ZoEcZvVlYscfsA0Sr8yJTsGJPefuLYI6eJkNDa1QkzBkSSW4XaCfNIxNBRs
zN/qGe3xy0bibOaC4T2TcbZPSAVP855ahNbLAdqkyfAutiEWcKZmQpR9qNh4482k
0pXVlQJ8UB860gVFHjwjFm/MsCeX8yfeAi38ZyInWL2OSG2pDx5ZzNESwnCPIg==
=3DzI
-----END PGP PUBLIC KEY BLOCK-----
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I tested the Docker task by @Sprout9 above, it works on my test. I would need to see what the output is of
/etc/apt/sources.list.d/
to know what issue you faced.However, make sure you have set
gather_facts: true
. Your fix does not use facts and instead references "ubuntu" directly. This is valid, however there is an advantage in using facts: the same task can work on multiple different distributions.For reference, this is the task I use to setup the Docker repository on my personal machines and in production servers (I personally tested it on Debian 11, Debian 12, Ubuntu 22.04 LTS and Ubuntu 24.04 LTS):