diff --git a/manifests/swh/deploy/archiver_content_updater.pp b/manifests/swh/deploy/archiver_content_updater.pp index 3bb8c300..a1035837 100644 --- a/manifests/swh/deploy/archiver_content_updater.pp +++ b/manifests/swh/deploy/archiver_content_updater.pp @@ -1,47 +1,36 @@ # Deployment of the swh.storage.archiver.updater class profile::swh::deploy::archiver_content_updater { include profile::swh::deploy::archiver $conf_file = lookup('swh::deploy::archiver_content_updater::conf_file') $user = lookup('swh::deploy::archiver_content_updater::user') $group = lookup('swh::deploy::archiver_content_updater::group') $content_updater_config = lookup('swh::deploy::archiver_content_updater::config') - include ::systemd - $service_name = 'swh-archiver-content-updater' - $service_file = "/etc/systemd/system/${service_name}.service" + $unit_name = "${service_name}.service" file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', content => inline_template("<%= @content_updater_config.to_yaml %>\n"), notify => Service[$service_name], } # Template uses variables # - $user # - $group # - file {$service_file: + ::systemd::unit_file {$unit_name: ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/archiver/swh-content-updater.service.erb'), - notify => [ - Exec['systemd-daemon-reload'], - Service[$service_name], - ], - } - - service {$service_name: + } ~> service {$service_name: ensure => running, enable => false, - require => File[$service_file], + require => File[$conf_file], } } diff --git a/manifests/swh/deploy/journal_publisher.pp b/manifests/swh/deploy/journal_publisher.pp index f7efcd00..8e61e211 100644 --- a/manifests/swh/deploy/journal_publisher.pp +++ b/manifests/swh/deploy/journal_publisher.pp @@ -1,57 +1,35 @@ # Deployment of the swh.journal.publisher class profile::swh::deploy::journal_publisher { include ::profile::swh::deploy::journal $conf_file = lookup('swh::deploy::journal_publisher::conf_file') $user = lookup('swh::deploy::journal_publisher::user') $group = lookup('swh::deploy::journal_publisher::group') $publisher_config = lookup('swh::deploy::journal_publisher::config') - include ::systemd - $service_name = 'swh-journal-publisher' - $service_file = "/etc/systemd/system/${service_name}.service" - - - file {$conf_directory: - ensure => directory, - owner => 'root', - group => $group, - mode => '0750', - } + $unit_name = "${service_name}.service" file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', - require => File[$conf_directory], content => inline_template("<%= @publisher_config.to_yaml %>\n"), notify => Service[$service_name], } # Template uses variables # - $user # - $group # - file {$service_file: + ::systemd::unit_file {$unit_name: ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/journal/swh-journal-publisher.service.erb'), - require => Package[$package_name], - notify => [ - Exec['systemd-daemon-reload'], - Service[$service_name], - ], - } - - service {$service_name: - ensure => running, - enable => false, - require => File[$service_file], + } ~> service {$service_name: + ensure => running, + enable => false, } } diff --git a/manifests/swh/deploy/journal_simple_checker_producer.pp b/manifests/swh/deploy/journal_simple_checker_producer.pp index f97709cc..77966383 100644 --- a/manifests/swh/deploy/journal_simple_checker_producer.pp +++ b/manifests/swh/deploy/journal_simple_checker_producer.pp @@ -1,57 +1,36 @@ # Deployment of the swh.journal.checker class profile::swh::deploy::journal_simple_checker_producer { include ::profile::swh::deploy::journal $conf_file = lookup('swh::deploy::journal_simple_checker_producer::conf_file') $user = lookup('swh::deploy::journal_simple_checker_producer::user') $group = lookup('swh::deploy::journal_simple_checker_producer::group') $checker_config = lookup( 'swh::deploy::journal_simple_checker_producer::config') - include ::systemd - $service_name = 'swh-journal-simple-checker-producer' - $service_file = "/etc/systemd/system/${service_name}.service" - - file {$conf_directory: - ensure => directory, - owner => 'root', - group => $group, - mode => '0750', - } + $unit_name = "${service_name}.service" file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', - require => File[$conf_directory], content => inline_template("<%= @checker_config.to_yaml %>\n"), notify => Service[$service_name], } # Template uses variables # - $user # - $group # - file {$service_file: + ::systemd::unit {$unit_name: ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/journal/swh-journal-simple-checker-producer.service.erb'), - require => Package[$package_name], - notify => [ - Exec['systemd-daemon-reload'], - Service[$service_name], - ], - } - - service {$service_name: - ensure => running, - enable => false, - require => File[$service_file], + } ~> service {$service_name: + ensure => running, + enable => false, } } diff --git a/manifests/swh/deploy/objstorage_archive_notifier_checker.pp b/manifests/swh/deploy/objstorage_archive_notifier_checker.pp index 0d80b700..753ef679 100644 --- a/manifests/swh/deploy/objstorage_archive_notifier_checker.pp +++ b/manifests/swh/deploy/objstorage_archive_notifier_checker.pp @@ -1,49 +1,42 @@ # Deployment of the swh.objstorage.checker.ArchiveNotifierContentChecker class profile::swh::deploy::objstorage_archive_notifier_checker { $conf_directory = lookup('swh::deploy::objstorage_archive_notifier_checker::conf_directory') $conf_file = lookup('swh::deploy::objstorage_archive_notifier_checker::conf_file') $user = lookup('swh::deploy::objstorage_archive_notifier_checker::user') $group = lookup('swh::deploy::objstorage_archive_notifier_checker::group') # configuration file $archive_notifier_config = lookup('swh::deploy::objstorage_archive_notifier_checker::config') $swh_packages = ['python3-swh.objstorage.checker'] package {$swh_packages: ensure => latest, require => Apt::Source['softwareheritage'], } file {$conf_directory: ensure => directory, owner => 'root', group => $group, mode => '0750', } file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', content => inline_template("<%= @archive_notifier_config.to_yaml %>\n"), } - include ::systemd - - file {'/etc/systemd/system/objstorage_archive_notifier_checker.service': + ::systemd::unit_file {'objstorage_archive_notifier_checker.service': ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/storage/objstorage_archive_notifier_checker.service.erb'), - notify => Exec['systemd-daemon-reload'], require => [ File[$conf_file], Package[$swh_packages], ] } - } diff --git a/manifests/swh/deploy/objstorage_log_checker.pp b/manifests/swh/deploy/objstorage_log_checker.pp index 5c4cfac8..cd9345e0 100644 --- a/manifests/swh/deploy/objstorage_log_checker.pp +++ b/manifests/swh/deploy/objstorage_log_checker.pp @@ -1,49 +1,43 @@ # Deployment of the swh.objstorage.checker.LogContentChecker class profile::swh::deploy::objstorage_log_checker { $conf_directory = lookup('swh::deploy::objstorage_log_checker::conf_directory') $conf_file = lookup('swh::deploy::objstorage_log_checker::conf_file') $user = lookup('swh::deploy::objstorage_log_checker::user') $group = lookup('swh::deploy::objstorage_log_checker::group') # configuration file $log_checker_config = lookup('swh::deploy::objstorage_log_checker::config') $swh_packages = ['python3-swh.objstorage.checker'] package {$swh_packages: ensure => latest, require => Apt::Source['softwareheritage'], } file {$conf_directory: ensure => directory, owner => 'root', group => $group, mode => '0750', } file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', content => inline_template("<%= @log_checker_config.to_yaml %>\n"), } - include ::systemd - - file {'/etc/systemd/system/objstorage_log_checker.service': + ::systemd::unit_file {'objstorage_log_checker.service': ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/storage/objstorage_log_checker.service.erb'), - notify => Exec['systemd-daemon-reload'], require => [ File[$conf_file], Package[$swh_packages], ] } } diff --git a/manifests/swh/deploy/objstorage_repair_checker.pp b/manifests/swh/deploy/objstorage_repair_checker.pp index dbf36376..ef8e7537 100644 --- a/manifests/swh/deploy/objstorage_repair_checker.pp +++ b/manifests/swh/deploy/objstorage_repair_checker.pp @@ -1,48 +1,42 @@ # Deployment of the swh.objstorage.checker.RepairContentChecker class profile::swh::deploy::objstorage_repair_checker { $conf_directory = lookup('swh::deploy::objstorage_repair_checker::conf_directory') $conf_file = lookup('swh::deploy::objstorage_repair_checker::conf_file') $user = lookup('swh::deploy::objstorage_repair_checker::user') $group = lookup('swh::deploy::objstorage_repair_checker::group') $repair_checker_config = lookup('swh::deploy::objstorage_repair_checker::config') $swh_packages = ['python3-swh.objstorage.checker'] package {$swh_packages: ensure => latest, require => Apt::Source['softwareheritage'], } file {$conf_directory: ensure => directory, owner => 'root', group => $group, mode => '0750', } file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', content => inline_template("<%= @repair_checker_config.to_yaml %>\n"), } - include ::systemd - - file {'/etc/systemd/system/objstorage_repair_checker.service': + ::systemd::unit_file {'objstorage_repair_checker.service': ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/storage/objstorage_repair_checker.service.erb'), - notify => Exec['systemd-daemon-reload'], require => [ File[$conf_file], Package[$swh_packages], ] } } diff --git a/manifests/swh/deploy/scheduler.pp b/manifests/swh/deploy/scheduler.pp index 664b37b2..d0503cfb 100644 --- a/manifests/swh/deploy/scheduler.pp +++ b/manifests/swh/deploy/scheduler.pp @@ -1,131 +1,117 @@ # Deployment of swh-scheduler related utilities class profile::swh::deploy::scheduler { $conf_file = lookup('swh::deploy::scheduler::conf_file') $user = lookup('swh::deploy::scheduler::user') $group = lookup('swh::deploy::scheduler::group') $database = lookup('swh::deploy::scheduler::database') $task_broker = lookup('swh::deploy::scheduler::task_broker') $task_packages = lookup('swh::deploy::scheduler::task_packages') $task_modules = lookup('swh::deploy::scheduler::task_modules') $task_backported_packages = lookup('swh::deploy::scheduler::backported_packages') - include ::systemd - $listener_service_name = 'swh-scheduler-listener' - $listener_service_file = "/etc/systemd/system/${listener_service_name}.service" - $listener_service_template = "profile/swh/deploy/scheduler/${listener_service_name}.service.erb" + $listener_unit_name = "${listener_service_name}.service" + $listener_unit_template = "profile/swh/deploy/scheduler/${listener_service_name}.service.erb" $runner_service_name = 'swh-scheduler-runner' - $runner_service_file = "/etc/systemd/system/${runner_service_name}.service" - $runner_service_template = "profile/swh/deploy/scheduler/${runner_service_name}.service.erb" + $runner_unit_name = "${runner_service_name}.service" + $runner_unit_template = "profile/swh/deploy/scheduler/${runner_service_name}.service.erb" $worker_conf_file = '/etc/softwareheritage/worker.ini' $packages = ['python3-swh.scheduler'] $services = [$listener_service_name, $runner_service_name] $pinned_packages = $task_backported_packages[$::lsbdistcodename] if $pinned_packages { ::apt::pin {'swh-scheduler': explanation => 'Pin swh.scheduler dependencies to backports', codename => "${::lsbdistcodename}-backports", packages => $pinned_packages, priority => 990, - } -> - package {$task_packages: + } + -> package {$task_packages: ensure => installed, notify => Service[$runner_service_name], } } else { package {$task_packages: ensure => installed, notify => Service[$runner_service_name], } } package {$packages: ensure => installed, notify => Service[$services], } # Template uses variables # - $database # file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', content => template('profile/swh/deploy/scheduler/scheduler.ini.erb'), notify => Service[$services], } # Template uses variables # - $task_broker # - $task_modules # file {$worker_conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', content => template('profile/swh/deploy/scheduler/worker.ini.erb'), notify => Service[$runner_service_name], } # Template uses variables # - $user # - $group # - file {$listener_service_file: + ::systemd::unit_file {$listener_unit_name: ensure => present, - owner => 'root', - group => 'root', - mode => '0644', - content => template($listener_service_template), - notify => [ - Exec['systemd-daemon-reload'], - Service[$listener_service_name], - ], + content => template($listener_unit_template), + notify => Service[$listener_service_name], } # Template uses variables # - $user # - $group # - file {$runner_service_file: + ::systemd::unit_file {$runner_unit_name: ensure => present, - owner => 'root', - group => 'root', - mode => '0644', - content => template($runner_service_template), - notify => [ - Exec['systemd-daemon-reload'], - Service[$runner_service_name], - ], + content => template($runner_unit_template), + notify => Service[$runner_service_name], } service {$runner_service_name: ensure => running, enable => true, require => [ Package[$packages], Package[$task_packages], File[$conf_file], File[$worker_conf_file], - File[$runner_service_file], + Systemd::Unit_File[$runner_unit_name], ], } service {$listener_service_name: ensure => running, enable => true, require => [ Package[$packages], File[$conf_file], File[$worker_conf_file], - File[$listener_service_file], + Systemd::Unit_File[$listener_unit_name], ], } } diff --git a/manifests/swh/deploy/storage_listener.pp b/manifests/swh/deploy/storage_listener.pp index f08a4ff3..dc5e0250 100644 --- a/manifests/swh/deploy/storage_listener.pp +++ b/manifests/swh/deploy/storage_listener.pp @@ -1,68 +1,57 @@ # Deployment of the swh.storage.listener class profile::swh::deploy::storage_listener { $conf_directory = lookup('swh::deploy::storage_listener::conf_directory') $conf_file = lookup('swh::deploy::storage_listener::conf_file') $user = lookup('swh::deploy::storage_listener::user') $group = lookup('swh::deploy::storage_listener::group') $database = lookup('swh::deploy::storage_listener::database') $topic_prefix = lookup('swh::deploy::storage_listener::topic_prefix') $kafka_brokers = lookup('swh::deploy::storage_listener::kafka_brokers', Array, 'unique') $poll_timeout = lookup('swh::deploy::storage_listener::poll_timeout') - include ::systemd - $service_name = 'swh-storage-listener' - $service_file = "/etc/systemd/system/${service_name}.service" + $unit_name = "${service_name}.service" package {'python3-swh.storage.listener': ensure => latest, notify => Service[$service_name], } file {$conf_directory: ensure => directory, owner => 'root', group => $group, mode => '0750', } # Template uses variables # - $database # - $kafka_brokers # - $topic_prefix # - $poll_timeout # file {$conf_file: ensure => present, owner => 'root', group => $group, mode => '0640', require => File[$conf_directory], content => template('profile/swh/deploy/storage_listener/listener.ini.erb'), notify => Service[$service_name], } # Template uses variables # - $user # - $group # - file {$service_file: + ::systemd::unit_file {$unit_name: ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/swh/deploy/storage_listener/swh-storage-listener.service.erb'), require => Package['python3-swh.storage.listener'], - notify => [ - Exec['systemd-daemon-reload'], - Service[$service_name], - ], - } - - service {$service_name: + } ~> service {$service_name: ensure => running, enable => true, - require => File[$service_file], + require => File[$conf_file], } } diff --git a/manifests/swh/deploy/worker/base.pp b/manifests/swh/deploy/worker/base.pp index 623b31e1..087867ea 100644 --- a/manifests/swh/deploy/worker/base.pp +++ b/manifests/swh/deploy/worker/base.pp @@ -1,73 +1,52 @@ # Base worker profile class profile::swh::deploy::worker::base { - include ::systemd + + include ::systemd::systemctl::daemon_reload $systemd_template_unit_name = 'swh-worker@.service' - $systemd_template_unit_file = "/etc/systemd/system/${systemd_template_unit_name}" $systemd_unit_name = 'swh-worker.service' - $systemd_unit_file = "/etc/systemd/system/${systemd_unit_name}" $systemd_slice_name = 'system-swh\x2dworker.slice' - $systemd_slice_file = "/etc/systemd/system/${systemd_slice_name}" $systemd_generator = '/lib/systemd/system-generators/swh-worker-generator' $config_directory = '/etc/softwareheritage/worker' package {'python3-swh.scheduler': ensure => installed, } - file {$systemd_template_unit_file: + ::systemd::unit_file {$systemd_template_unit_name: ensure => 'present', - owner => 'root', - group => 'root', - mode => '0644', source => "puppet:///modules/profile/swh/deploy/worker/${systemd_template_unit_name}", - notify => Exec['systemd-daemon-reload'], } - file {$systemd_unit_file: + ::systemd::unit_file {$systemd_unit_name: ensure => 'present', - owner => 'root', - group => 'root', - mode => '0644', source => "puppet:///modules/profile/swh/deploy/worker/${systemd_unit_name}", - notify => Exec['systemd-daemon-reload'], + } ~> service {'swh-worker': + ensure => running, + enable => true, } - file {$systemd_slice_file: + ::systemd::unit_file {$systemd_slice_name: ensure => 'present', - owner => 'root', - group => 'root', - mode => '0644', source => "puppet:///modules/profile/swh/deploy/worker/${systemd_slice_name}", - notify => Exec['systemd-daemon-reload'], } file {$systemd_generator: ensure => 'present', owner => 'root', group => 'root', mode => '0755', source => 'puppet:///modules/profile/swh/deploy/worker/swh-worker-generator', - notify => Exec['systemd-daemon-reload'], + notify => Class['systemd::systemctl::daemon_reload'], } file {$config_directory: ensure => 'directory', owner => 'swhworker', group => 'swhdev', mode => '0644', purge => true, recurse => true, } - service {'swh-worker': - ensure => running, - enable => true, - require => [ - Exec['systemd-daemon-reload'], - File[$systemd_template_unit_file], - File[$systemd_unit_file], - File[$systemd_generator], - ], - } } diff --git a/manifests/swh/deploy/worker/instance.pp b/manifests/swh/deploy/worker/instance.pp index 9f1ba450..4519b22f 100644 --- a/manifests/swh/deploy/worker/instance.pp +++ b/manifests/swh/deploy/worker/instance.pp @@ -1,117 +1,66 @@ # Instance of a worker define profile::swh::deploy::worker::instance ( $ensure = present, $task_broker = '', $task_modules = [], $task_queues = [], $task_soft_time_limit = 0, $concurrency = 10, $loglevel = 'info', $max_tasks_per_child = 5, $instance_name = $title, $limit_no_file = undef, $private_tmp = undef) { include ::profile::swh::deploy::worker::base - include ::systemd $service_basename = "swh-worker@${instance_name}" $service_name = "${service_basename}.service" - $systemd_dir = "/etc/systemd/system/${service_name}.d" - $systemd_snippet = "${systemd_dir}/parameters.conf" $config_directory = '/etc/softwareheritage/worker' $instance_config = "${config_directory}/${instance_name}.ini" case $ensure { - 'present': { - file {$systemd_dir: - ensure => directory, - owner => 'root', - group => 'root', - mode => '0755', - } - + 'present', 'running': { # Uses variables # - $concurrency # - $loglevel # - $max_tasks_per_child - file {$systemd_snippet: - ensure => present, - owner => 'root', - group => 'root', - mode => '0644', - content => template('profile/swh/deploy/worker/parameters.conf.erb'), - notify => [ - Exec['systemd-daemon-reload'], - ], + ::systemd::dropin_file {"${service_basename}/parameters.conf": + ensure => present, + unit => $service_name, + filename => 'parameters.conf', + content => template('profile/swh/deploy/worker/parameters.conf.erb'), } # Uses variables # - $task_broker # - $task_modules # - $task_queues # - $task_soft_time_limit file {$instance_config: ensure => present, owner => 'swhworker', group => 'swhdev', # contains a password for the broker mode => '0640', content => template('profile/swh/deploy/worker/instance_config.ini.erb'), } - } - 'running': { - file {$systemd_dir: - ensure => directory, - owner => 'root', - group => 'root', - mode => '0755', - } - - # Uses variables - # - $concurrency - # - $loglevel - # - $max_tasks_per_child - file {$systemd_snippet: - ensure => present, - owner => 'root', - group => 'root', - mode => '0644', - content => template('profile/swh/deploy/worker/parameters.conf.erb'), - notify => [ - Exec['systemd-daemon-reload'], - ], - } - - # Uses variables - # - $task_broker - # - $task_modules - # - $task_queues - # - $task_soft_time_limit - file {$instance_config: - ensure => present, - owner => 'swhworker', - group => 'swhdev', - # contains a password for the broker - mode => '0640', - content => template('profile/swh/deploy/worker/instance_config.ini.erb'), - } - service {$service_basename: - ensure => running, + ensure => $ensure, require => [ File[$instance_config], - File[$systemd_snippet], ], } } default: { - file {[ - $systemd_dir, - $instance_config, - ]: + file {$instance_config: ensure => absent, } + ::systemd::dropin_file {"${service_basename}/parameters.conf": + ensure => absent, + unit => $service_name, + filename => 'parameters.conf', + } } } } diff --git a/manifests/systemd_journal/journalbeat.pp b/manifests/systemd_journal/journalbeat.pp index 84236410..a00b61e5 100644 --- a/manifests/systemd_journal/journalbeat.pp +++ b/manifests/systemd_journal/journalbeat.pp @@ -1,78 +1,65 @@ # Journalbeat: a systemd journal collection beater for the ELK stack class profile::systemd_journal::journalbeat { $package = 'journalbeat' $user = 'journalbeat' $group = 'nogroup' $homedir = '/var/lib/journalbeat' $configdir = '/etc/journalbeat' $configfile = "${configdir}/journalbeat.yml" $service = 'journalbeat' - $servicefile = "/etc/systemd/system/${service}.service" $logstash_hosts = lookup('systemd_journal::logstash_hosts') - include ::systemd - package {$package: ensure => present } user {$user: ensure => present, gid => $group, groups => 'systemd-journal', home => $homedir, managehome => true, system => true, } # Uses variables # - $user # - $homedir # - $configfile # - file {$servicefile: + ::systemd::unit_file {"${service}.service": ensure => present, - owner => 'root', - group => 'root', - mode => '0644', content => template('profile/systemd_journal/journalbeat/journalbeat.service.erb'), - require => Package[$package], - notify => [ - Exec['systemd-daemon-reload'], - Service[$service], + } + ~> service {$service: + ensure => running, + enable => true, + require => [ + Package[$package], + File[$configfile], ], } file {$configdir: ensure => directory, owner => 'root', group => 'root', mode => '0644', } # Uses variables # - $logstash_hosts # file {$configfile: ensure => present, owner => 'root', group => 'root', mode => '0644', content => template('profile/systemd_journal/journalbeat/journalbeat.yml.erb'), notify => [ - Exec['systemd-daemon-reload'], Service[$service], ], } - service {$service: - ensure => running, - enable => true, - require => [ - File[$servicefile], - File[$configfile], - Exec['systemd-daemon-reload'], - ], - } }