feat: manage sonarr configuration
- add config class to sonarr module - update params to include unique group param
This commit is contained in:
parent
34e696e8c3
commit
f22556b39f
@ -0,0 +1 @@
|
||||
sonarr::api_key: ENC[PKCS7,MIIBmQYJKoZIhvcNAQcDoIIBijCCAYYCAQAxggEhMIIBHQIBADAFMAACAQEwDQYJKoZIhvcNAQEBBQAEggEANhwc0Vk0htkacwqGA/ZEVR7hpC1V2+nyP3lxyqkVNWERdcIsoMjlfwp2QNoLVirALY10Kon1wKXiRLT+QOqF9aTapS2Vb2YH3ZujR5yT6T1z4e0o4EA3IlNJZemVIziIqrK8+8zZzVafYdOYwMwpbc5EzoJPBtdqNHbDaQu4bRTCp2yMISTOzFjZpOoEJlRyC8YrffNU2xzA5mh5Cw+00MdIfPd8enrCnA4b1ddqP/IsfEYRt91ANQBULwKC5wenKdJAN5qKSKW6KU9TUM5YvGvUPgTvcYgXNf3/INL6G3/HwISTE5A7S6lqwYLyRTT1fMHtgDIqS936DPqCdAZtzjBcBgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBZ4e3jAM0zvV43IrCzQOGIgDBwOWgm+wJG+jAU8r1awWDvzQXgF3h65nAKfoOuGEztsjeBEruU4EmZy6llLbfSSb8=]
|
||||
@ -29,6 +29,7 @@ profiles::nginx::simpleproxy::nginx_aliases:
|
||||
- sonarr.query.consul
|
||||
- "sonarr.service.%{facts.country}-%{facts.region}.consul"
|
||||
profiles::nginx::simpleproxy::proxy_port: 8989
|
||||
profiles::nginx::simpleproxy::proxy_host: 127.0.0.1
|
||||
profiles::nginx::simpleproxy::proxy_path: '/'
|
||||
|
||||
# configure consul service
|
||||
|
||||
27
modules/sonarr/manifests/config.pp
Normal file
27
modules/sonarr/manifests/config.pp
Normal file
@ -0,0 +1,27 @@
|
||||
class sonarr::config (
|
||||
$user = $sonarr::params::user,
|
||||
$group = $sonarr::params::group,
|
||||
$base_path = $sonarr::params::base_path,
|
||||
$bind_address = $sonarr::bind_address,
|
||||
$port = $sonarr::port,
|
||||
$ssl_port = $sonarr::ssl_port,
|
||||
$enable_ssl = $sonarr::enable_ssl,
|
||||
$launch_browser = $sonarr::launch_browser,
|
||||
$api_key = $sonarr::api_key,
|
||||
$authentication_method = $sonarr::authentication_method,
|
||||
$authentication_required = $sonarr::authentication_required,
|
||||
$branch = $sonarr::branch,
|
||||
$log_level = $sonarr::log_level,
|
||||
$ssl_cert_path = $sonarr::ssl_cert_path,
|
||||
$ssl_cert_password = $sonarr::ssl_cert_password,
|
||||
$url_base = $sonarr::url_base,
|
||||
$instance_name = $sonarr::instance_name,
|
||||
) {
|
||||
file { "${base_path}/config.xml":
|
||||
ensure => file,
|
||||
content => template('sonarr/sonarr_config.xml.erb'),
|
||||
owner => $user,
|
||||
group => $group,
|
||||
mode => '0644',
|
||||
}
|
||||
}
|
||||
@ -1,21 +1,36 @@
|
||||
# manage sonarr
|
||||
class sonarr (
|
||||
$packages = $sonarr::params::packages,
|
||||
$user = $sonarr::params::user,
|
||||
$group = $sonarr::params::user,
|
||||
$base_path = $sonarr::params::base_path,
|
||||
$install_path = $sonarr::params::install_path,
|
||||
$config_folder = $sonarr::params::config_folder,
|
||||
$app_folder = $sonarr::params::app_folder,
|
||||
$archive_name = $sonarr::params::archive_name,
|
||||
$archive_url = $sonarr::params::archive_url,
|
||||
$executable = $sonarr::params::executable,
|
||||
$service_enable = $sonarr::params::service_enable,
|
||||
$service_name = $sonarr::params::service_name,
|
||||
$packages = $sonarr::params::packages,
|
||||
$user = $sonarr::params::user,
|
||||
$group = $sonarr::params::group,
|
||||
$base_path = $sonarr::params::base_path,
|
||||
$install_path = $sonarr::params::install_path,
|
||||
$config_folder = $sonarr::params::config_folder,
|
||||
$app_folder = $sonarr::params::app_folder,
|
||||
$archive_name = $sonarr::params::archive_name,
|
||||
$archive_url = $sonarr::params::archive_url,
|
||||
$executable = $sonarr::params::executable,
|
||||
$service_enable = $sonarr::params::service_enable,
|
||||
$service_name = $sonarr::params::service_name,
|
||||
$bind_address = $sonarr::params::bind_address,
|
||||
$port = $sonarr::params::port,
|
||||
$ssl_port = $sonarr::params::ssl_port,
|
||||
$enable_ssl = $sonarr::params::enable_ssl,
|
||||
$launch_browser = $sonarr::params::launch_browser,
|
||||
$api_key = $sonarr::params::api_key,
|
||||
$authentication_method = $sonarr::params::authentication_method,
|
||||
$authentication_required = $sonarr::params::authentication_required,
|
||||
$branch = $sonarr::params::branch,
|
||||
$log_level = $sonarr::params::log_level,
|
||||
$ssl_cert_path = $sonarr::params::ssl_cert_path,
|
||||
$ssl_cert_password = $sonarr::params::ssl_cert_password,
|
||||
$url_base = $sonarr::params::url_base,
|
||||
$instance_name = $sonarr::params::instance_name,
|
||||
) inherits sonarr::params {
|
||||
|
||||
include sonarr::install
|
||||
include sonarr::config
|
||||
include sonarr::service
|
||||
|
||||
Class['sonarr::install'] -> Class['sonarr::service']
|
||||
Class['sonarr::install'] -> Class['sonarr::config'] -> Class['sonarr::service']
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
class sonarr::install (
|
||||
$packages = $sonarr::packages,
|
||||
$user = $sonarr::user,
|
||||
$group = $sonarr::user,
|
||||
$group = $sonarr::group,
|
||||
$base_path = $sonarr::base_path,
|
||||
$install_path = $sonarr::install_path,
|
||||
$config_folder = $sonarr::config_folder,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# sonarr params
|
||||
class sonarr::params (
|
||||
$packages = [
|
||||
Array[String] $packages = [
|
||||
'mediainfo',
|
||||
'libzen',
|
||||
'libmediainfo',
|
||||
@ -13,15 +13,36 @@ class sonarr::params (
|
||||
'python3-dbus',
|
||||
'libxslt-devel'
|
||||
],
|
||||
$user = 'sonarr',
|
||||
$base_path = '/opt/sonarr',
|
||||
$install_path = '/opt/sonarr/bin',
|
||||
$config_folder = "/home/${user}/.config",
|
||||
$app_folder = "/home/${user}/.config/Sonarr",
|
||||
$archive_version = '4.0.5',
|
||||
$archive_name = 'Sonarr.main.linux-x64.tar.gz',
|
||||
$archive_url = "https://git.query.consul/api/packages/unkinben/generic/sonarr/${archive_version}/",
|
||||
$executable = 'Sonarr/Sonarr',
|
||||
$service_enable = true,
|
||||
$service_name = 'sonarr',
|
||||
){}
|
||||
String $user = 'sonarr',
|
||||
String $group = 'sonarr',
|
||||
Stdlib::Absolutepath $base_path = '/opt/sonarr',
|
||||
Stdlib::Absolutepath $install_path = '/opt/sonarr/bin',
|
||||
Stdlib::Absolutepath $config_folder = '/home/sonarr/.config',
|
||||
Stdlib::Absolutepath $app_folder = '/home/sonarr/.config/Sonarr',
|
||||
String $archive_version = '4.0.5',
|
||||
String $archive_name = 'Sonarr.main.linux-x64.tar.gz',
|
||||
Stdlib::HTTPUrl $archive_url = "https://git.query.consul/api/packages/unkinben/generic/sonarr/${archive_version}/",
|
||||
String $executable = 'Sonarr/Sonarr',
|
||||
String $service_name = 'sonarr',
|
||||
Boolean $service_enable = true,
|
||||
|
||||
# params for the configuration file
|
||||
Stdlib::Host $bind_address = '127.0.0.1',
|
||||
Stdlib::Port $port = 8989,
|
||||
Stdlib::Port $ssl_port = 9898,
|
||||
Boolean $enable_ssl = false,
|
||||
Boolean $launch_browser = true,
|
||||
String $api_key = '32-digit-random-string-goes-here',
|
||||
Enum[
|
||||
'Forms',
|
||||
'Basic',
|
||||
'External'
|
||||
] $authentication_method = 'External',
|
||||
Enum['Enabled', 'Disabled'] $authentication_required = 'Enabled',
|
||||
String $branch = 'main',
|
||||
Enum['debug', 'info', 'warn', 'error', 'fatal'] $log_level = 'info',
|
||||
Optional[String] $ssl_cert_path = undef,
|
||||
Optional[String] $ssl_cert_password = undef,
|
||||
Optional[String] $url_base = undef,
|
||||
String $instance_name = 'Sonarr',
|
||||
) { }
|
||||
|
||||
@ -3,7 +3,7 @@ class sonarr::service (
|
||||
$service_enable = $sonarr::service_enable,
|
||||
$service_name = $sonarr::service_name,
|
||||
$user = $sonarr::user,
|
||||
$group = $sonarr::user,
|
||||
$group = $sonarr::group,
|
||||
$install_path = $sonarr::install_path,
|
||||
$executable = $sonarr::executable,
|
||||
$base_path = $sonarr::base_path,
|
||||
@ -12,9 +12,10 @@ class sonarr::service (
|
||||
include ::systemd
|
||||
|
||||
systemd::unit_file { "${service_name}.service":
|
||||
content => template('sonarr/sonarr.service.erb'),
|
||||
enable => true,
|
||||
active => true,
|
||||
content => template('sonarr/sonarr.service.erb'),
|
||||
enable => true,
|
||||
active => true,
|
||||
subscribe => File["${base_path}/config.xml"],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
16
modules/sonarr/templates/sonarr_config.xml.erb
Normal file
16
modules/sonarr/templates/sonarr_config.xml.erb
Normal file
@ -0,0 +1,16 @@
|
||||
<Config>
|
||||
<BindAddress><%= @bind_address %></BindAddress>
|
||||
<Port><%= @port %></Port>
|
||||
<SslPort><%= @ssl_port %></SslPort>
|
||||
<EnableSsl><%= @enable_ssl.to_s.capitalize %></EnableSsl>
|
||||
<LaunchBrowser><%= @launch_browser.to_s.capitalize %></LaunchBrowser>
|
||||
<ApiKey><%= @api_key %></ApiKey>
|
||||
<AuthenticationMethod><%= @authentication_method %></AuthenticationMethod>
|
||||
<AuthenticationRequired><%= @authentication_required %></AuthenticationRequired>
|
||||
<Branch><%= @branch %></Branch>
|
||||
<LogLevel><%= @log_level %></LogLevel>
|
||||
<SslCertPath><%= @ssl_cert_path || '' %></SslCertPath>
|
||||
<SslCertPassword><%= @ssl_cert_password || '' %></SslCertPassword>
|
||||
<UrlBase><%= @url_base || '' %></UrlBase>
|
||||
<InstanceName><%= @instance_name %></InstanceName>
|
||||
</Config>
|
||||
Loading…
Reference in New Issue
Block a user