chore: migrate media applications (#299)

- migrate media applications to new cephfs pool + incus
- enable exporting haproxy
- move ceph-client-setup to only apply to non-lxc hosts
- ensure unrar is installed for nzbget
- updated jellyfin use of data_dir
- set lxc instances for jellyfin to use /shared/apps/jellyfin

Reviewed-on: https://git.query.consul/unkinben/puppet-prod/pulls/299
This commit is contained in:
Ben Vincent 2025-05-25 20:27:17 +10:00
parent 1d23fef82e
commit b3347f9226
11 changed files with 78 additions and 67 deletions

View File

@ -61,3 +61,11 @@ profiles::yum::global::repos:
baseurl: https://download1.rpmfusion.org/nonfree/el/updates/%{facts.os.release.major}/%{facts.os.architecture} baseurl: https://download1.rpmfusion.org/nonfree/el/updates/%{facts.os.release.major}/%{facts.os.architecture}
gpgkey: https://download1.rpmfusion.org/nonfree/el/RPM-GPG-KEY-rpmfusion-nonfree-el-%{facts.os.release.major} gpgkey: https://download1.rpmfusion.org/nonfree/el/RPM-GPG-KEY-rpmfusion-nonfree-el-%{facts.os.release.major}
mirrorlist: absent mirrorlist: absent
unkinben:
name: unkinben
descr: unkinben repository
target: /etc/yum.repos.d/unkin.repo
baseurl: https://git.query.consul/api/packages/unkinben/rpm/el8
gpgkey: https://git.query.consul/api/packages/unkinben/rpm/repository.key
gpgcheck: false
mirrorlist: absent

View File

@ -5,6 +5,9 @@ hiera_include:
- profiles::media::nzbget - profiles::media::nzbget
- profiles::nginx::ldapauth - profiles::nginx::ldapauth
profiles::packages::include:
unrar: {}
# manage nzbget # manage nzbget
nzbget::params::user: nzbget nzbget::params::user: nzbget
nzbget::params::group: media nzbget::params::group: media

View File

@ -6,11 +6,5 @@ profiles::packages::include:
# disable mlock for vault nodes on lxd/incus # disable mlock for vault nodes on lxd/incus
vault::disable_mlock: true vault::disable_mlock: true
hiera_exclude: # manage jellyfin changes
# exclude the media profiles which are just cephfs-mount-management profiles::media::jellyfin::data_dir: /shared/apps/jellyfin
- profiles::media::lidarr
- profiles::media::nzbget
- profiles::media::prowlarr
- profiles::media::radarr
- profiles::media::readarr
- profiles::media::sonarr

View File

@ -1,9 +1,9 @@
# jellyfin params # jellyfin params
class jellyfin::params ( class jellyfin::params (
Array[String] $packages = [ Array[String] $packages = [
'jellyfin',
'jellyfin-web', 'jellyfin-web',
'jellyfin-server', 'jellyfin-server',
'jellyfin-ffmpeg-bin',
'SDL2', 'SDL2',
'ffmpeg', 'ffmpeg',
'ffmpeg-devel', 'ffmpeg-devel',

View File

@ -2,10 +2,10 @@
class profiles::media::jellyfin ( class profiles::media::jellyfin (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
Stdlib::Absolutepath $data_dir = '/data/jellyfin', Stdlib::Absolutepath $data_dir = '/data/jellyfin',
Stdlib::Absolutepath $lib_dir = '/data/jellyfin/var/lib', Stdlib::Absolutepath $lib_dir = "${data_dir}/var/lib",
Stdlib::Absolutepath $cache_dir = '/data/jellyfin/var/cache', Stdlib::Absolutepath $cache_dir = "${data_dir}/var/cache",
Stdlib::Absolutepath $config_dir = '/data/jellyfin/etc', Stdlib::Absolutepath $config_dir = "${data_dir}/etc",
Stdlib::Absolutepath $log_dir = '/data/jellyfin/var/log', Stdlib::Absolutepath $log_dir = "${data_dir}/var/log",
Stdlib::Absolutepath $ffmpeg_path = '/usr/local/bin/ffmpeg', Stdlib::Absolutepath $ffmpeg_path = '/usr/local/bin/ffmpeg',
Stdlib::Absolutepath $sysconfig_file = '/etc/sysconfig/jellyfin', Stdlib::Absolutepath $sysconfig_file = '/etc/sysconfig/jellyfin',
Stdlib::Absolutepath $migration_flag = '/etc/sysconfig/jellyfin_migration_done', Stdlib::Absolutepath $migration_flag = '/etc/sysconfig/jellyfin_migration_done',

View File

@ -3,15 +3,16 @@ class profiles::media::lidarr (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
) { ) {
include profiles::ceph::client if $facts['virtual'] != 'lxc' {
# manage the sharedvol
# manage the sharedvol include profiles::ceph::client
profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media": profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media":
mount => $media_root, mount => $media_root,
keyring => '/etc/ceph/ceph.client.media.keyring', keyring => '/etc/ceph/ceph.client.media.keyring',
cephfs_name => 'media', cephfs_name => 'media',
cephfs_fs => 'mediafs', cephfs_fs => 'mediafs',
require => Profiles::Ceph::Keyring['media'], require => Profiles::Ceph::Keyring['media'],
}
} }
# export haproxy balancemember # export haproxy balancemember

View File

@ -3,15 +3,16 @@ class profiles::media::nzbget (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
) { ) {
include profiles::ceph::client if $facts['virtual'] != 'lxc' {
# manage the sharedvol
# manage the sharedvol include profiles::ceph::client
profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media": profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media":
mount => $media_root, mount => $media_root,
keyring => '/etc/ceph/ceph.client.media.keyring', keyring => '/etc/ceph/ceph.client.media.keyring',
cephfs_name => 'media', cephfs_name => 'media',
cephfs_fs => 'mediafs', cephfs_fs => 'mediafs',
require => Profiles::Ceph::Keyring['media'], require => Profiles::Ceph::Keyring['media'],
}
} }
# export haproxy balancemember # export haproxy balancemember

View File

@ -3,15 +3,16 @@ class profiles::media::prowlarr (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
) { ) {
include profiles::ceph::client if $facts['virtual'] != 'lxc' {
# manage the sharedvol
# manage the sharedvol include profiles::ceph::client
profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media": profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media":
mount => $media_root, mount => $media_root,
keyring => '/etc/ceph/ceph.client.media.keyring', keyring => '/etc/ceph/ceph.client.media.keyring',
cephfs_name => 'media', cephfs_name => 'media',
cephfs_fs => 'mediafs', cephfs_fs => 'mediafs',
require => Profiles::Ceph::Keyring['media'], require => Profiles::Ceph::Keyring['media'],
}
} }
# export haproxy balancemember # export haproxy balancemember

View File

@ -3,15 +3,16 @@ class profiles::media::radarr (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
) { ) {
include profiles::ceph::client if $facts['virtual'] != 'lxc' {
# manage the sharedvol
# manage the sharedvol include profiles::ceph::client
profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media": profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media":
mount => $media_root, mount => $media_root,
keyring => '/etc/ceph/ceph.client.media.keyring', keyring => '/etc/ceph/ceph.client.media.keyring',
cephfs_name => 'media', cephfs_name => 'media',
cephfs_fs => 'mediafs', cephfs_fs => 'mediafs',
require => Profiles::Ceph::Keyring['media'], require => Profiles::Ceph::Keyring['media'],
}
} }
# export haproxy balancemember # export haproxy balancemember

View File

@ -3,15 +3,16 @@ class profiles::media::readarr (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
) { ) {
include profiles::ceph::client if $facts['virtual'] != 'lxc' {
# manage the sharedvol
# manage the sharedvol include profiles::ceph::client
profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media": profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media":
mount => $media_root, mount => $media_root,
keyring => '/etc/ceph/ceph.client.media.keyring', keyring => '/etc/ceph/ceph.client.media.keyring',
cephfs_name => 'media', cephfs_name => 'media',
cephfs_fs => 'mediafs', cephfs_fs => 'mediafs',
require => Profiles::Ceph::Keyring['media'], require => Profiles::Ceph::Keyring['media'],
}
} }
# export haproxy balancemember # export haproxy balancemember

View File

@ -3,15 +3,16 @@ class profiles::media::sonarr (
Stdlib::Absolutepath $media_root = '/shared/media', Stdlib::Absolutepath $media_root = '/shared/media',
) { ) {
include profiles::ceph::client if $facts['virtual'] != 'lxc' {
# manage the sharedvol
# manage the sharedvol include profiles::ceph::client
profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media": profiles::storage::cephfsvol {"${::facts['networking']['fqdn']}_media":
mount => $media_root, mount => $media_root,
keyring => '/etc/ceph/ceph.client.media.keyring', keyring => '/etc/ceph/ceph.client.media.keyring',
cephfs_name => 'media', cephfs_name => 'media',
cephfs_fs => 'mediafs', cephfs_fs => 'mediafs',
require => Profiles::Ceph::Keyring['media'], require => Profiles::Ceph::Keyring['media'],
}
} }
# export haproxy balancemember # export haproxy balancemember