Add third-party repositories in Debian and derivates and pin their packages. Follows guide from Debian wiki.
It defaults to deb822, but also allows single line style (manpage).
Debian 9+ or Ubuntu 18.04+. Other versions of Debian/Ubuntu might be supported as well, but aren't tested.
apt_repositories:
- url: https://...
key: |
-----BEGIN PGP PUBLIC KEY BLOCK-----
MY_ARMORED_KEY
...
Further possible variables (and their defaults) are:
apt_repositories:
- url: https://...
filename: "{{ item.url|urlsplit('hostname') }}"
types: deb
suites: "{{ ansible_distribution_release }}"
components: main
packages: []
key_path: # a file path in the role `files` dir instead of `key`
Furthermore, it supports preset
values. For an example see vars/gitlab.yml
.
Presets can be partially overridden.
Current presets:
- caddy
- gitlab
- grafana
- jitsi
- prosody
- sury
- torproject
PRs welcome!
- hosts: server
roles:
- systemli.apt_repositories
vars:
apt_repositories:
- filename: packages.gitlab.com
url: https://packages.gitlab.com/gitlab/gitlab-ce/debian/
key: "{{ gitlab_ce_key }}"
packages:
- gitlab-ce
or
- hosts: server
roles:
- systemli.apt_repositories
vars:
apt_repositories:
- preset: gitlab
or just add it as a dependency for ansible-galaxy
:
# meta/main.yml
...
dependencies:
- role: systemli.apt_repositories
vars:
apt_repositories:
- filename: download.jitsi.org
url: https://download.jitsi.org/
key_path: jitsi-archive-keyring.gpg
suites: stable/
components: ''
packages: "{{ jitsi_meet_packages }}"
GPLv3
systemli.org