aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/plex/tasks
diff options
context:
space:
mode:
authorKumar Damani <me@kumardamani.net>2023-08-11 16:28:54 +0000
committerKumar Damani <me@kumardamani.net>2023-08-11 16:28:54 +0000
commita8a40383081441ebd3757a501364b9ac45eb421e (patch)
treef48b7040615af1bda263faa4d2657636c77ba2a4 /ansible/roles/plex/tasks
parent9bae899e227e4899a5ee629bf305a00a39044bc2 (diff)
parent1f321db8949b3aeb80afdd7a94e92b7743c3e275 (diff)
Merge branch 'work' into 'main'
Work See merge request kdam0/home-lab!1
Diffstat (limited to 'ansible/roles/plex/tasks')
-rw-r--r--ansible/roles/plex/tasks/main.yaml5
-rw-r--r--ansible/roles/plex/tasks/setup.yaml55
2 files changed, 60 insertions, 0 deletions
diff --git a/ansible/roles/plex/tasks/main.yaml b/ansible/roles/plex/tasks/main.yaml
new file mode 100644
index 0000000..5469534
--- /dev/null
+++ b/ansible/roles/plex/tasks/main.yaml
@@ -0,0 +1,5 @@
+---
+
+- name: 'Run the setup tasks'
+ ansible.builtin.import_tasks: 'setup.yaml'
+ tags: 'plex'
diff --git a/ansible/roles/plex/tasks/setup.yaml b/ansible/roles/plex/tasks/setup.yaml
new file mode 100644
index 0000000..de0eb69
--- /dev/null
+++ b/ansible/roles/plex/tasks/setup.yaml
@@ -0,0 +1,55 @@
+---
+
+- name: 'setup | Ensure required vars are set'
+ ansible.builtin.assert:
+ that:
+ - item | mandatory
+ loop:
+ - '{{ plex_nas_mount_path }}'
+ no_log: true
+
+- name: 'setup | Install required pkgs'
+ ansible.builtin.package:
+ name:
+ - 'nfs-common'
+ - 'curl'
+ - 'gnupg'
+
+- name: 'setup | Create the mount dir'
+ ansible.builtin.file:
+ path: '/mnt/data'
+ state: 'directory'
+ mode: '755'
+
+- name: 'setup | Setup the NFS mount'
+ ansible.posix.mount:
+ src: '{{ plex_nas_mount_path }}'
+ path: '/mnt/data'
+ state: 'mounted'
+ fstype: 'nfs'
+
+- name: 'setup | Get the Plex signed keys'
+ ansible.builtin.shell:
+ # noqa: risky-shell-pipe command-instead-of-module
+ cmd: >
+ curl -sS https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | tee /usr/share/keyrings/plex.gpg > /dev/null
+ creates: '/usr/share/keyrings/plex.gpg'
+
+- name: 'setup | Set the Plex sources'
+ ansible.builtin.copy:
+ dest: '/etc/apt/sources.list.d/plexmediaserver.list'
+ content: |
+ deb [signed-by=/usr/share/keyrings/plex.gpg] https://downloads.plex.tv/repo/deb public main
+ mode: '644'
+
+- name: 'setup | Install the package'
+ ansible.builtin.apt:
+ name: 'plexmediaserver'
+ state: 'present'
+ update_cache: true
+
+- name: 'setup | Start the service'
+ ansible.builtin.service:
+ name: 'plexmediaserver'
+ state: 'stopped'
+ enabled: true