aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2023-08-15 21:44:16 +0200
committerEgor Tensin <Egor.Tensin@gmail.com>2023-08-15 21:46:06 +0200
commitbbace95c25f2d22163b04d8d3ebd535c7eddfc60 (patch)
tree97c925a795c087af87fc824169d9804dd865a3e1
parentdebian_ppa -> apt_ppa (diff)
downloadinfra-ansible-bbace95c25f2d22163b04d8d3ebd535c7eddfc60.tar.gz
infra-ansible-bbace95c25f2d22163b04d8d3ebd535c7eddfc60.zip
factor out apt repository setup to apt_repo
-rw-r--r--roles/apt_ppa/defaults/main.yml1
-rw-r--r--roles/apt_ppa/tasks/main.yml27
-rw-r--r--roles/apt_repo/README.md2
-rw-r--r--roles/apt_repo/defaults/main.yml2
-rw-r--r--roles/apt_repo/tasks/main.yml23
5 files changed, 35 insertions, 20 deletions
diff --git a/roles/apt_ppa/defaults/main.yml b/roles/apt_ppa/defaults/main.yml
deleted file mode 100644
index 72e0753..0000000
--- a/roles/apt_ppa/defaults/main.yml
+++ /dev/null
@@ -1 +0,0 @@
-ppa_keys_dir: /etc/apt/keyrings
diff --git a/roles/apt_ppa/tasks/main.yml b/roles/apt_ppa/tasks/main.yml
index e6f3f04..01d6809 100644
--- a/roles/apt_ppa/tasks/main.yml
+++ b/roles/apt_ppa/tasks/main.yml
@@ -1,19 +1,8 @@
-- name: Set up repository
- become: true
- block:
- - name: Create keys directory
- ansible.builtin.file:
- path: '{{ ppa_keys_dir }}'
- mode: '755'
- state: directory
-
- - name: 'Add key: {{ ppa_name }}'
- ansible.builtin.get_url:
- url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x{{ ppa_key }}'
- dest: '{{ ppa_keys_dir }}/{{ ppa_name }}.asc'
- mode: '644'
-
- - name: 'Add repository: {{ ppa_name }}'
- ansible.builtin.apt_repository:
- repo: 'deb [signed-by={{ ppa_keys_dir }}/{{ ppa_name }}.asc] https://ppa.launchpadcontent.net/{{ ppa_owner }}/{{ ppa_name }}/ubuntu {{ ppa_distro }} main'
- filename: '{{ ppa_name }}'
+- name: Set up PPA repository
+ ansible.builtin.include_role:
+ name: apt_repo
+ vars:
+ apt_repo_name: '{{ ppa_name }}'
+ apt_repo_key_url: 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x{{ ppa_key }}'
+ apt_repo_url: 'https://ppa.launchpadcontent.net/{{ ppa_owner }}/{{ ppa_name }}/ubuntu'
+ apt_repo_distro: '{{ ppa_distro }}'
diff --git a/roles/apt_repo/README.md b/roles/apt_repo/README.md
new file mode 100644
index 0000000..1e9451e
--- /dev/null
+++ b/roles/apt_repo/README.md
@@ -0,0 +1,2 @@
+This role is used to enable a 3rd-party repository on Ubuntu/Debian. It
+downloads a key file from the web and adds an entry in /etc/apt/sources.list.d.
diff --git a/roles/apt_repo/defaults/main.yml b/roles/apt_repo/defaults/main.yml
new file mode 100644
index 0000000..0877adf
--- /dev/null
+++ b/roles/apt_repo/defaults/main.yml
@@ -0,0 +1,2 @@
+apt_repo_keys_dir: /etc/apt/keyrings
+apt_repo_component: main
diff --git a/roles/apt_repo/tasks/main.yml b/roles/apt_repo/tasks/main.yml
new file mode 100644
index 0000000..25069bb
--- /dev/null
+++ b/roles/apt_repo/tasks/main.yml
@@ -0,0 +1,23 @@
+- name: Set up repository
+ become: true
+ block:
+ - name: Create keys directory
+ ansible.builtin.file:
+ path: '{{ apt_repo_keys_dir }}'
+ mode: '755'
+ state: directory
+
+ - name: Set key path
+ ansible.builtin.set_fact:
+ key_path: '{{ apt_repo_keys_dir }}/{{ apt_repo_name }}.asc'
+
+ - name: 'Add key: {{ apt_repo_name }}'
+ ansible.builtin.get_url:
+ url: '{{ apt_repo_key_url }}'
+ dest: '{{ key_path }}'
+ mode: '644'
+
+ - name: 'Add repository: {{ apt_repo_name }}'
+ ansible.builtin.apt_repository:
+ repo: 'deb [signed-by={{ key_path }}] {{ apt_repo_url }} {{ apt_repo_distro }} {{ apt_repo_component }}'
+ filename: '{{ apt_repo_name }}'