Tips & Best Practices
Panduan praktis untuk operasional server ujian yang lancar.
Persiapan Sebelum Ujian
H-7: Persiapan Server
- Jalankan
examtool status— pastikan semua hijau - Jalankan
examtool update— update aplikasi ke versi terbaru - Jalankan
examtool self-update— update script examtool jika ada versi baru - Cek SSL certificate belum expired
- Cek disk space tersedia minimal 20% free
- Pastikan backup database terjadwal
H-1: Uji Coba
- Test akses dari 2-3 PC di lab ujian
- Test login peserta dan dosen
- Test SEB (jika digunakan) dari PC lab
- Cek koneksi internet/intranet stabil
- Siapkan nomor kontak tim pengelola pusat
- Catat IP server dan kredensial di tempat aman
H-0: Hari Ujian
- Restart semua service 30 menit sebelum ujian
- Monitor
examtool statusselama ujian - Siapkan akses SSH untuk troubleshooting darurat
- Jangan jalankan update/backup selama ujian berlangsung
Sizing yang Tepat
Pemilihan tier yang tepat sangat penting. examtool mendeteksi tier otomatis berdasarkan jumlah PC:
| Jumlah PC | Tier | RAM Minimum | CPU Minimum |
|---|---|---|---|
| 50 — 100 | SMALL | 4 GB | 4 core |
| 100 — 200 | MEDIUM | 8 GB | 6 core |
| 200 — 300 | LARGE | 12 GB | 8 core |
| 300 — 500 | MAX | 16 GB | 16 core |
Tips:
- Hitung jumlah PC fisik + 10-20% cadangan
- Lebih baik over-provision daripada under-provision
- Jika ragu antara dua tier, pilih tier yang lebih tinggi
Keamanan
Password
- Gunakan password minimal 12 karakter
- Kombinasi huruf besar, kecil, angka
- Jangan gunakan password yang sama untuk server lain
- Ganti password secara berkala (minimal per semester)
- Simpan password di password manager, bukan di sticky note
Username
Username harus 3-32 karakter, dimulai huruf kecil, hanya boleh huruf kecil, angka, underscore, dan dash.
Reserved words — username berikut tidak bisa digunakan:
root, admin, administrator, www-data, mysql, postgres, nginx, apache, operator, nobody, daemon, bin, sys, man, mail
SSH
- Gunakan SSH key authentication jika memungkinkan
- Ganti port SSH default menggunakan
examtool ssh-port --port=2222 - Batasi akses SSH hanya dari IP admin:
ufw delete allow 22/tcp ufw allow from 192.168.1.0/24 to any port 22Ganti port 22 dengan SSH port aktif jika menggunakan custom port.
Firewall
- Jangan buka port yang tidak diperlukan
- Review
ufw statussecara berkala - Di jaringan lab, gunakan VLAN terpisah untuk ujian
File .env
- File
.envberisi konfigurasi lokal (SEB, helpdesk, dll) - Jika
/etc/examtool.envtidak ada saat install, examtool otomatis membuatnya dari template - Password database di-generate otomatis dan disimpan ke file .env
- Permission harus 0600:
chmod 600 /etc/examtool.env - Jangan share file
.envvia email/chat
Backup
Setup Cron Otomatis
Gunakan perintah interaktif untuk setup backup harian:
examtool enable-backup-cron
Akan ditanya jam, path, dan retensi. Default: jam 02:00, path /root/backup_db, retensi 7 hari.
Untuk menghapus cron: examtool disable-backup-cron
Sebelum Update
Selalu backup sebelum menjalankan update:
examtool backup-db
examtool update
Verifikasi Backup
Sesekali test restore ke server lain untuk memastikan backup valid:
# Di server test
examtool restore-db --file=/root/backup_db/backup_terbaru.sql.gz
Retensi
- Default cron: hapus backup > 7 hari (bisa diubah saat setup)
- Backup sebelum ujian penting: simpan lebih lama
- Pindahkan backup ke storage external secara berkala
Monitoring
Cek Rutin (Harian)
# Quick health check
examtool status
Yang Perlu Diperhatikan
- Disk usage > 80%: Bersihkan log lama, backup lama
- Swap usage > 50%: Server butuh lebih banyak RAM
- Memcached hit ratio < 80%: Cek konfigurasi cache
- Error log banyak: Investigasi sebelum ujian
- SSL expiry < 30 hari: Segera perpanjang certificate
Log Rotation
Log otomatis di-rotate oleh logrotate. Jika disk penuh karena log:
# Cek ukuran log
du -sh /var/log/nginx/ /var/log/mysql/ /var/log/php*/
# Bersihkan log lama manual
find /var/log/ -name "*.gz" -mtime +30 -delete
Update & Maintenance
Jadwal Update
- Aplikasi (
examtool update): Setiap ada notifikasi dari tim pusat - Script (
examtool self-update): Examtool otomatis cek update setiap dijalankan — ikuti prompt jika ada versi baru - OS (
apt update && apt upgrade): Bulanan, di luar jadwal ujian - SSL Certificate: Sebelum expired
Window Maintenance
- Lakukan update di luar jam ujian
- Idealnya hari Sabtu/Minggu atau malam hari
- Informasikan ke pengguna jika ada downtime
Rollback
Jika update bermasalah:
# Aplikasi: rollback git
cd /var/www/ujian && git checkout <commit-sebelumnya>
# Database: restore backup
examtool restore-db --file=/root/backup_db/backup_terbaru.sql.gz
# Script: download versi lama
# Hubungi tim pengelola pusat
Jaringan Lab Ujian
Topologi Ideal
Ada dua topologi deployment: Direct ke Internet (server punya IP Public + SSL) dan Via HTTP Proxy (server di belakang reverse proxy, tanpa SSL). Lihat Topologi Jaringan untuk diagram lengkap.
Topologi jaringan lokal di lab:
Internet → Router → Switch Utama → Server Ujian
│
Switch Lab → PC 1..N
Lumbung Soal: Jika menggunakan Lumbung Soal Nasional, domain server ujian harus bisa diakses dari internet agar Lumbung bisa push soal via API. Lihat Akses Lumbung Soal.
Rekomendasi
- Server dan PC lab di VLAN yang sama (atau routing cepat)
- Bandwidth minimal 100 Mbps antara server dan switch lab
- Gunakan kabel ethernet, bukan WiFi untuk PC ujian
- Siapkan spare switch dan kabel
DNS Internal
examtool menginstall DNSMasq untuk resolve domain dari LAN. Pastikan PC lab menggunakan IP server sebagai DNS server, atau tambahkan entry di hosts file masing-masing PC.