Skip to content
Snippets Groups Projects
aes_sw.pp 2.5 KiB
Newer Older
  • Learn to ignore specific revisions
  •   $examadm_user = examadm
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      $examadm_group = $examadm_user
    
      $examadm_home = "/home/${examadm_user}"
    
    
    Klas Arvidsson's avatar
    Klas Arvidsson committed
      package {
        [
          'a2ps',
    
          'cronie',
    
    Klas Arvidsson's avatar
    Klas Arvidsson committed
          'java-11-openjdk-devel',
        ]:
          ensure  => installed,
      }
    
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      user { 'examadm' :
        ensure     => present,
    
        managehome => false,
        membership => inclusive,
    
    Magnus Svensson's avatar
    Magnus Svensson committed
        system     => true,
        shell      => '/sbin/nologin',
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      file { $examadm_home:
    
    Klas Arvidsson's avatar
    Klas Arvidsson committed
        ensure => directory,
        mode   => '0755',
    
    Magnus Svensson's avatar
    Magnus Svensson committed
        owner  => $examadm_user,
        group  => $examadm_group,
    
    Klas Arvidsson's avatar
    Klas Arvidsson committed
      }
    
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      file { '/etc/systemd/system/aes_login.service':
        ensure  => file,
        owner   => root,
        group   => root,
        mode    => '0644',
        content => @(LOGINSERVICE),
    
    Klas Arvidsson's avatar
    Klas Arvidsson committed
        [Unit]
        Description=AES Login server
        After=network.target
        
        [Service]
        Type=simple
        User=examadm
        WorkingDirectory=/home/examadm/Version-3.1/exam
        ExecStart=/usr/bin/python3 /home/examadm/Version-3.1/pub/bin/examiner/find_pnr_and_otp_from_liuid.py
    
        [Install]
        WantedBy=multi-user.target
        | LOGINSERVICE
      }
    
    
      # todo: logrotate
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      service { 'aes_login' :
        ensure => 'running',
    
        enable => true,
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      file { '/etc/systemd/system/aes_ms.service':
        ensure  => file,
        owner   => root,
        group   => root,
        mode    => '0644',
        content => @(MSSERVICE),
    
        [Unit]
        Description=AES Exam server
        After=network.target
        
        [Service]
        Type=simple
        User=examadm
        WorkingDirectory=/home/examadm/Version-3.1
        ExecStart=/usr/bin/java -Xmx512M -jar /home/examadm/Version-3.1/pub/bin/examiner/ms.jar /home/examadm/Version-3.1
    
        [Install]
        WantedBy=multi-user.target
        | MSSERVICE
      }
    
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      file { '/etc/cron.daily/aes_ms':
        ensure  => file,
        owner   => root,
        group   => root,
        mode    => '0700',
        content => @(MSCRON),
    
        #!/bin/sh
        /usr/bin/systemctl restart aes_ms
        | MSCRON
      }
    
    
    Klas Arvidsson's avatar
    Klas Arvidsson committed
      file { '/etc/cron.daily/aes_login':
        ensure  => file,
        owner   => root,
        group   => root,
        mode    => '0700',
        content => @(MSCRON),
        #!/bin/sh
        /usr/bin/systemctl restart aes_login
        | MSCRON
      }
    
    
      # todo: logrotate
    
    Magnus Svensson's avatar
    Magnus Svensson committed
      service { 'aes_ms' :
        ensure => 'running',
    
        enable => true,
    
      exec { 'script-repo-updated':
        command => "/opt/utils/update_repo.sh ${examadm_home}/scripts https://oauth2:iAyewr9Jq5E-tnsVrmbj@gitlab.liu.se/examadm/scripts.git master",
    
    Magnus Svensson's avatar
    Magnus Svensson committed
        cwd     => $examadm_home,
        user    => $examadm_user,
        group   => $examadm_group,
    
      }
    
      schedule { 'everyday':
        period => daily,
    
    Magnus Svensson's avatar
    Magnus Svensson committed
        range  => '01:00 - 04:00',