- add autosyncer/autopromoter scripts - add timer and service to initial sync process - add timer/service for daily/weekly/monthly autopromote - add define to manage each repo - add nginx webserver to share repos - add favion.ico if enabled - add selinux management, and packages for selinux - cleanup package management, sorting package groups into package classes
106 lines
2.4 KiB
Puppet
106 lines
2.4 KiB
Puppet
# setup the autopromoter
|
|
class profiles::reposync::autopromoter {
|
|
|
|
# Ensure the autopromoter script is present and executable
|
|
file { '/usr/local/bin/autopromoter':
|
|
ensure => 'file',
|
|
owner => 'root',
|
|
group => 'root',
|
|
mode => '0755',
|
|
content => template('profiles/reposync/autopromoter.erb'),
|
|
}
|
|
|
|
# daily autopromote service/timer
|
|
$_daily_timer = @(EOT)
|
|
[Unit]
|
|
Description=autopromoter daily timer
|
|
[Timer]
|
|
OnCalendar=*-*-* 05:00:00
|
|
RandomizedDelaySec=1s
|
|
[Install]
|
|
WantedBy=timers.target
|
|
EOT
|
|
|
|
$_daily_service = @(EOT)
|
|
[Unit]
|
|
Description=autopromoter daily service
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/local/bin/autopromoter daily
|
|
User=root
|
|
Group=root
|
|
PermissionsStartOnly=false
|
|
PrivateTmp=no
|
|
EOT
|
|
|
|
systemd::timer { 'autopromoter-daily.timer':
|
|
timer_content => $_daily_timer,
|
|
service_content => $_daily_service,
|
|
active => true,
|
|
enable => true,
|
|
require => File['/usr/local/bin/autopromoter'],
|
|
}
|
|
|
|
# weekly autopromote service/timer
|
|
$_weekly_timer = @(EOT)
|
|
[Unit]
|
|
Description=autopromoter weekly timer
|
|
[Timer]
|
|
OnCalendar=Sun *-*-* 05:05:00
|
|
RandomizedDelaySec=1s
|
|
[Install]
|
|
WantedBy=timers.target
|
|
EOT
|
|
|
|
$_weekly_service = @(EOT)
|
|
[Unit]
|
|
Description=autopromoter weekly service
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/local/bin/autopromoter weekly
|
|
User=root
|
|
Group=root
|
|
PermissionsStartOnly=false
|
|
PrivateTmp=no
|
|
EOT
|
|
|
|
systemd::timer { 'autopromoter-weekly.timer':
|
|
timer_content => $_weekly_timer,
|
|
service_content => $_weekly_service,
|
|
active => true,
|
|
enable => true,
|
|
require => File['/usr/local/bin/autopromoter'],
|
|
}
|
|
|
|
# monthly autopromote service/timer
|
|
$_monthly_timer = @(EOT)
|
|
[Unit]
|
|
Description=autopromoter monthly timer
|
|
[Timer]
|
|
OnCalendar=*-*-01 05:10:00
|
|
RandomizedDelaySec=1s
|
|
[Install]
|
|
WantedBy=timers.target
|
|
EOT
|
|
|
|
$_monthly_service = @(EOT)
|
|
[Unit]
|
|
Description=autopromoter monthly service
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/usr/local/bin/autopromoter monthly
|
|
User=root
|
|
Group=root
|
|
PermissionsStartOnly=false
|
|
PrivateTmp=no
|
|
EOT
|
|
|
|
systemd::timer { 'autopromoter-monthly.timer':
|
|
timer_content => $_monthly_timer,
|
|
service_content => $_monthly_service,
|
|
active => true,
|
|
enable => true,
|
|
require => File['/usr/local/bin/autopromoter'],
|
|
}
|
|
}
|