# 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'], } }