Merge pull request 'feat: manage jellyfin data migration_flag' (#90) from neoloc/jellyfin into develop
Reviewed-on: https://git.query.consul/unkinben/puppet-prod/pulls/90
This commit was merged in pull request #90.
This commit is contained in:
@@ -1,6 +1,15 @@
|
||||
# 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 $lib_dir = '/data/jellyfin/var/lib',
|
||||
Stdlib::Absolutepath $cache_dir = '/data/jellyfin/var/cache',
|
||||
Stdlib::Absolutepath $config_dir = '/data/jellyfin/etc',
|
||||
Stdlib::Absolutepath $log_dir = '/data/jellyfin/var/log',
|
||||
Stdlib::Absolutepath $sysconfig_file = '/etc/sysconfig/jellyfin',
|
||||
Stdlib::Absolutepath $migration_flag = '/etc/sysconfig/jellyfin_migration_done',
|
||||
String $service_name = 'jellyfin',
|
||||
Boolean $migrate_data = true,
|
||||
) {
|
||||
|
||||
include profiles::ceph::client
|
||||
@@ -28,4 +37,80 @@ class profiles::media::jellyfin (
|
||||
'fall 2',
|
||||
]
|
||||
}
|
||||
|
||||
mkdir::p {[$data_dir, $lib_dir, $cache_dir, $config_dir, $log_dir]:}
|
||||
-> file { [$data_dir, $lib_dir, $cache_dir, $config_dir, $log_dir]:
|
||||
ensure => directory,
|
||||
owner => 'jellyfin',
|
||||
group => 'jellyfin',
|
||||
mode => '0755',
|
||||
}
|
||||
|
||||
if $migrate_data and ! $facts['jellyfin_migration_done'] {
|
||||
|
||||
exec { "stop-${service_name}":
|
||||
command => "/usr/bin/systemctl stop ${service_name}",
|
||||
require => File[$sysconfig_file],
|
||||
}
|
||||
|
||||
exec { 'move-jellyfin-lib':
|
||||
command => "/usr/bin/rsync -av /var/lib/jellyfin/ ${lib_dir}/ && rm -rf /var/lib/jellyfin",
|
||||
creates => "${lib_dir}/config",
|
||||
require => [File[$lib_dir], Exec["stop-${service_name}"]],
|
||||
}
|
||||
|
||||
exec { 'move-jellyfin-cache':
|
||||
command => "/usr/bin/rsync -av /var/cache/jellyfin/ ${cache_dir}/ && rm -rf /var/cache/jellyfin",
|
||||
creates => "${cache_dir}/config",
|
||||
require => [File[$cache_dir], Exec["stop-${service_name}"]],
|
||||
}
|
||||
|
||||
exec { 'move-jellyfin-config':
|
||||
command => "/usr/bin/rsync -av /etc/jellyfin/ ${config_dir}/ && rm -rf /etc/jellyfin",
|
||||
creates => "${config_dir}/config",
|
||||
require => [File[$config_dir], Exec["stop-${service_name}"]],
|
||||
}
|
||||
|
||||
exec { 'move-jellyfin-log':
|
||||
command => "/usr/bin/rsync -av /var/log/jellyfin/ ${log_dir}/ && rm -rf /var/log/jellyfin",
|
||||
creates => "${log_dir}/config",
|
||||
require => [File[$log_dir], Exec["stop-${service_name}"]],
|
||||
}
|
||||
|
||||
exec { 'create-migration-flag':
|
||||
command => "/usr/bin/touch ${migration_flag}",
|
||||
creates => $migration_flag,
|
||||
require => [
|
||||
Exec['move-jellyfin-lib'],
|
||||
Exec['move-jellyfin-cache'],
|
||||
Exec['move-jellyfin-config'],
|
||||
Exec['move-jellyfin-log']
|
||||
],
|
||||
}
|
||||
|
||||
exec { "start-${service_name}":
|
||||
command => "/usr/bin/systemctl start ${service_name}",
|
||||
require => Exec['create-migration-flag'],
|
||||
}
|
||||
}
|
||||
|
||||
file { $sysconfig_file:
|
||||
ensure => file,
|
||||
content => template('profiles/jellyfin/sysconfig.erb'),
|
||||
notify => [
|
||||
Systemd::Daemon_reload["${service_name}_service"],
|
||||
Service[$service_name]
|
||||
],
|
||||
}
|
||||
|
||||
file { '/etc/systemd/system/jellyfin.service.d/override.conf':
|
||||
ensure => file,
|
||||
content => template('profiles/jellyfin/override.conf.erb'),
|
||||
notify => [
|
||||
Systemd::Daemon_reload["${service_name}_service"],
|
||||
Service[$service_name]
|
||||
],
|
||||
}
|
||||
|
||||
systemd::daemon_reload {"${service_name}_service":}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user