Working version
This commit contains a working version of this Puppet implementation of Radarr.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# == Class: radarr
|
||||
#
|
||||
class radarr (
|
||||
$manage_epel = $radarr::params::manage_epel,
|
||||
$install_mono = $radarr::params::install_mono,
|
||||
$mono_baseurl = $radarr::params::mono_baseurl,
|
||||
$mono_gpgkey = $radarr::params::mono_gpgkey,
|
||||
$mono_packages = $radarr::params::mono_packages,
|
||||
$additional_packages = $radarr::params::additional_packages,
|
||||
$user = $radarr::params::user,
|
||||
$group = $radarr::params::user,
|
||||
$base_path = $radarr::params::base_path,
|
||||
$install_path = $radarr::params::install_path,
|
||||
$config_folder = $radarr::params::config_folder,
|
||||
$app_folder = $radarr::params::app_folder,
|
||||
$archive_name = $radarr::params::archive_name,
|
||||
$archive_url = $radarr::params::archive_url,
|
||||
$executable = $radarr::params::executable,
|
||||
$service_enable = $radarr::params::service_enable,
|
||||
$service_name = $radarr::params::service_name,
|
||||
) inherits radarr::params {
|
||||
|
||||
contain radarr::install
|
||||
contain radarr::service
|
||||
|
||||
Class['radarr::install'] ~>
|
||||
Class['radarr::service']
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
# == Class: radarr::install
|
||||
#
|
||||
class radarr::install (
|
||||
$manage_epel = $radarr::manage_epel,
|
||||
$install_mono = $radarr::install_mono,
|
||||
$mono_baseurl = $radarr::mono_baseurl,
|
||||
$mono_gpgkey = $radarr::mono_gpgkey,
|
||||
$mono_packages = $radarr::mono_packages,
|
||||
$additional_packages = $radarr::additional_packages,
|
||||
$user = $radarr::user,
|
||||
$group = $radarr::user,
|
||||
$base_path = $radarr::base_path,
|
||||
$install_path = $radarr::install_path,
|
||||
$config_folder = $radarr::config_folder,
|
||||
$app_folder = $radarr::app_folder,
|
||||
$archive_name = $radarr::archive_name,
|
||||
$archive_url = $radarr::archive_url,
|
||||
$executable = $radarr::executable,
|
||||
) {
|
||||
|
||||
if $manage_epel {
|
||||
package { 'epel-release':
|
||||
ensure => 'installed',
|
||||
}
|
||||
}
|
||||
|
||||
if $install_mono {
|
||||
yumrepo { 'mono':
|
||||
ensure => present,
|
||||
baseurl => $mono_baseurl,
|
||||
gpgkey => $mono_gpgkey,
|
||||
gpgcheck => true,
|
||||
} ->
|
||||
|
||||
package { $mono_packages:
|
||||
ensure => installed,
|
||||
}
|
||||
}
|
||||
|
||||
$_additional_packages = $additional_packages ? {
|
||||
Array => true,
|
||||
default => false,
|
||||
}
|
||||
|
||||
if $_additional_packages {
|
||||
package { $additional_packages:
|
||||
ensure => installed,
|
||||
}
|
||||
}
|
||||
|
||||
group { $group:
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
user { $user:
|
||||
ensure => present,
|
||||
shell => '/sbin/nologin',
|
||||
groups => $group,
|
||||
managehome => true,
|
||||
}
|
||||
|
||||
file { [ $base_path, $install_path, $config_folder, $app_folder ]:
|
||||
ensure => directory,
|
||||
owner => $user,
|
||||
group => $group,
|
||||
}
|
||||
|
||||
$_archive_url = strip(generate('/bin/sh', '-c', "${archive_url}"))
|
||||
|
||||
archive { $archive_name:
|
||||
path => "/tmp/${archive_name}",
|
||||
source => "${_archive_url}",
|
||||
extract => true,
|
||||
extract_path => $install_path,
|
||||
creates => "${install_path}/${executable}",
|
||||
cleanup => true,
|
||||
require => File[$install_path],
|
||||
user => $user,
|
||||
group => $group,
|
||||
} ->
|
||||
exec { 'move files to correct folder':
|
||||
command => "/usr/bin/mv ${install_path}/Radarr/* ${install_path}",
|
||||
creates => "${install_path}/${executable}",
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
class radarr::params {
|
||||
$manage_epel = true
|
||||
$install_mono = true
|
||||
$mono_baseurl = 'http://download.mono-project.com/repo/centos/'
|
||||
$mono_gpgkey = 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF'
|
||||
$mono_packages = ['mono-core', 'mono-devel', 'mono-locale-extras']
|
||||
$additional_packages = ['curl', 'mediainfo']
|
||||
$user = 'radarr'
|
||||
$base_path = '/opt/radarr'
|
||||
$install_path = '/opt/radarr/bin'
|
||||
$config_folder = "/home/${user}/.config"
|
||||
$app_folder = "/home/${user}/.config/Radarr"
|
||||
$archive_name = 'Radarr.develop.linux.tar.gz'
|
||||
$archive_url = '/usr/bin/curl -s https://api.github.com/repos/Radarr/Radarr/releases | grep linux.tar.gz | grep browser_download_url | head -1 | cut -d \'"\' -f 4'
|
||||
$executable = 'Radarr.exe'
|
||||
$service_enable = true
|
||||
$service_name = 'radarr'
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# == Class: radarr::service
|
||||
#
|
||||
class radarr::service (
|
||||
$service_enable = $radarr::service_enable,
|
||||
$service_name = $radarr::service_name,
|
||||
$user = $radarr::user,
|
||||
$group = $radarr::user,
|
||||
$install_path = $radarr::install_path,
|
||||
$executable = $radarr::executable,
|
||||
$base_path = $radarr::base_path,
|
||||
) {
|
||||
if $service_enable {
|
||||
include ::systemd
|
||||
|
||||
systemd::unit_file { "${service_name}.service":
|
||||
content => template('radarr/systemd.erb'),
|
||||
enable => true,
|
||||
active => true,
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user