86 lines
2.2 KiB
Puppet
86 lines
2.2 KiB
Puppet
# == 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 radarr files to correct folder':
|
|
command => "/usr/bin/mv ${install_path}/Radarr/* ${install_path}",
|
|
creates => "${install_path}/${executable}",
|
|
}
|
|
}
|