Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
SRE / sysreseval
SRE / sysreseval

Utilisation

  • Overview
    • Student Workflow
    • Monitoring of a session
    • Running exams
    • Post-exam workflow
    • Web server (remote use)
  • Exam Administration
    • Lifecycle at a glance
    • Setting up an exam — sre set-exam
    • Monitoring an exam
      • Clean up after an exam
    • Exam-only labs
    • Post-exam workflow
      • Inspect a single archive
      • Re-grade with a corrected project file
      • Per-student PDF reports + summary spreadsheet
      • Export to a spreadsheet
  • Web server (remote use)
    • Architecture
    • Installation
      • From a checkout
      • Debian packages
    • Configuration
      • agent.toml
      • web.toml
      • Authentication by the reverse proxy
      • The connection log
      • The archives of the evaluations
      • Re-evaluated archives
      • User groups
      • Exams
      • Web conference (BigBlueButton)
      • Securing the pool (mutual TLS)
      • A whole site at once (scripts/make-web-hosts.sh)
      • A pool of workstations
    • What the users see
      • Instructors
      • Administrators
      • The Display tab
    • Security
    • Limitations
    • Development
    • Stress test
      • Stage 1: a fake pool, no Docker
      • Stage 2: the production pool

Authoring Labs

  • Lab Authoring Guide
    • The authoring workflow on the CLI
      • sre check [-p] <lab> [<state>]
      • sre start --debug-project [-p] <lab> [--xauth-file <path>]
      • sre connect <running_lab> <device> and sre exec <running_lab> <device> <command…>
      • sre state <running_lab> <state_name>
      • sre eval <running_lab>
      • sre wipe
    • Identifying a running lab and where its files live
    • The four classes at a glance
    • Data class
      • IP helper functions (from /opt/sre/lib/ips.py)
      • IPv6 labs
      • compute_pre_generate and compute_post_generate
    • Flavor class
    • NetScheme class
      • Declarations and accessors
      • Machine constructor parameters
      • Network parameters
      • Switches and VLANs
      • Instructor-only texts — instructor()
      • Numbered sections, references and table of contents — info_subtitle(), info_toc()
    • State methods
      • Lifecycle states: save / restore
      • @sre_state decorator
      • Per-machine operations
      • File transfer between host and container
      • Host-side operations
      • Switch operations
      • Multi-step state setup — the step parameter
      • Reading command results — multi_pass=True
      • Network config helpers (from /opt/sre/lib/net_config.py)
      • State helpers (from /opt/sre/lib/state_helpers.py)
    • Grade class
      • The grading lifecycle
      • Grade parts
      • Self-eval vs instructor-eval scope
      • Questions
      • Cheat answers
      • Letter grades vs numeric marks
      • Bonus elements
      • Overriding mark_exo_eval() to adjust the overall mark
      • Grade methods
    • Grading Library Reference
      • DHCP helpers (from /opt/sre/lib/dhcp.py)
      • Mail helpers (from /opt/sre/lib/smtp.py)
      • TLS helpers (from /opt/sre/lib/tls.py)
      • DNS helpers (from /opt/sre/lib/dns.py)
      • HTTP proxy helpers (from /opt/sre/lib/http_proxy.py)
      • VRRP / keepalived helpers (from /opt/sre/lib/vrrp.py)
      • VoIP helpers (from /opt/sre/lib/voip.py)
      • SNMP helpers (from /opt/sre/lib/snmp.py)
      • Nagios helpers (from /opt/sre/lib/nagios.py)
      • Prometheus helpers (from /opt/sre/lib/prometheus.py)
      • Central logs helpers (from /opt/sre/lib/rsyslog.py)
      • NetFlow helpers (from /opt/sre/lib/netflow.py)
      • Traffic generator (from /opt/sre/lib/traffic.py)
      • TCP port helpers (from /opt/sre/lib/grade_helpers.py)
      • OSPF helpers (from /opt/sre/lib/frr.py)
      • BGP helpers (from /opt/sre/lib/frr.py)
      • RIP helpers (from /opt/sre/lib/frr.py and /opt/sre/lib/rip.py)
      • Standard machine wiring (from /opt/sre/lib/std.py)
      • Miscellaneous generators (from /opt/sre/lib/utils.py)
      • Network inspection helpers (from /opt/sre/lib/net_config.py)
      • Switch helpers (from /opt/sre/lib/switch.py)
      • Ping helper (from /opt/sre/lib/ping.py)
      • SSH helpers (from /opt/sre/lib/ssh.py)
      • Packet capture helpers (from /opt/sre/lib/pcap_gen.py)
    • Module-level Attributes
      • Lab identity and presentation
      • Student self-evaluation
      • Automatic evaluation
      • Archives and recordings
      • State machine and flavors
      • Networking
      • Filesystem and export
      • Schema rendering
    • Complete Minimal Example
    • The list of labs
      • What is a lab, and its name
      • Exam-only labs
      • Titles: sre make-titles and titles.json
      • The title of a directory
      • The order of a directory: "@sort"
  • Hubs, switches and VLANs
    • In the GUI
      • The Networks tab
      • The console of a manageable switch
    • In a lab
      • Declaring the kind of a network
      • Running switch commands from a state
      • Grading the configuration of a switch
      • A complete example
    • On the command line
    • Limits
    • What a host needs
    • Tests
  • Translating a Lab
    • Internationalization with tr() / make_tr()
    • Marking strings that must NOT be translated: no_tr()
    • Centralizing translations with _TRANSLATIONS
      • Where to put _TRANSLATIONS
      • Dynamic strings with format placeholders
    • Translation toolchain
      • 1. prepare-sre-translations — migrate and scaffold
      • 2. check-sre-translations — verify consistency
      • 3. add-sre-translations — machine-translate missing strings
    • Complete translation workflow
    • Switching the default language: --change-default-language
      • Prerequisites
      • Example: switching to English as a pivot before translating

Installation and Setup

  • Installation and Setup
    • Prerequisites
    • Deployment layout
    • Debian package
    • Updating
    • Running the installer
    • Install manually
    • Post-install steps
      • 1. Deploy and verify
      • 2. Enable X11 access for lab virtual machines
      • 3. Restricting student access to Docker
      • 4. Sharing evaluation archives for sre watch
      • 5. Pre-loading Docker images
      • 6. Stopping the projects when the machine halts
    • Reference
      • Build targets
      • Tests
      • Building the documentation
      • Network plugin for the switch types
      • Dependencies

Reference

  • GUI Reference — sysreseval
    • Launching
    • Opening a project
    • Saving and restoring a project
    • Exporting a project
    • Project tabs
    • Instructor mode
    • Exam mode
    • Settings
  • CLI Reference — sre
    • Global options
    • Dual commands
      • sre start [-d data] [-p] [--flavor … | --flavor-json … | --set-flavor-name …] [--xauth-file <file>] [--instructor-mode] <lab> [data_version]
      • sre stop <running_lab>
      • sre stop-all
      • sre save [-o <file>] [--full-images] <running_lab>
      • sre restore [--instructor-mode] <save_file | ->
      • sre wipe
      • sre connect [--shell <shell>] [--exec <argument…>] [--no-records] <running_lab> <device>
      • sre eval [-p path] [--auto-eval] <running_lab>
      • sre state <running_lab> <state_name>
    • Admin-only commands
      • sre exec [--shell <shell>] <running_lab> <device> <command…>
      • sre set-instructor-mode <running_lab> and sre remove-instructor-mode <running_lab>
      • sre eval-all [--display-grades / --no-display-grades]
      • sre check [-p] <lab> [<state>]
      • sre watch [--timeout <sec>] [--interval <sec>] [-H <regexp>] [-S <time>] [-L] <dir…>
      • sre preload-images [--random-delay <sec>] [--progress] <file_or_dir…>
      • sre make-titles [-o <file> | -r] [-d] <directory>
      • sre update [--main | --ref <tag|branch|commit>] [--check | --force] [-y] [--venv]
    • Exam management
      • sre set-exam [options]
      • sre del-exam
      • sre save-records -d <dir> [--only-last-record]
    • Post-exam management
      • sre cat [options] <file…>
      • sre check-eval [-s <srelab>] <file…>
      • sre re-eval -s <srelab> -p <prefix> [-d <outdir>] [-r] [--update-web] <file_or_dir…>
      • sre sheet -o <output.ods> [-r] [-S <time>] [-F <time>] [--separate-instances] <file_or_dir…>
      • sre outline [-o <summary.ods>] [-d <pdf_dir>] [-r] [-S <time>] [-F <time>] [--lang <lang>] [--no-timeline] [--remaining-time] [--separate-instances] [--users-file <file>] <file_or_dir…>
    • Internal commands (GUI-only)
      • sre list [--with-titles] [--include-exam-only]
      • sre export <running_lab> [--sep <N>] [--curved] [--shapes] [--reverse] [--random-seed <N>]
      • sre report <sheet|outline|summary> [--lang <lang>] [--separate-instances] [--bonus-in-prefix] [--no-timeline] [--remaining-time] [--no-parts] [-o <file>]
      • sre pre-start-exam
      • sre start-exam
      • sre eval-exam
      • sre end-exam
  • Exam Reference
    • exam.json — single source of truth
    • GUI exam logic
    • Commands
  • Runtime & Internals
    • Architecture
    • Filesystem layout
      • Running lab directory
    • Configuration
      • Constants (src/SRE/params.py)
      • Environment variables
      • Locale
    • Dynamic module loading
    • Data serialization
    • Test execution
    • Switches
    • Course text (informations)
    • Progress reporting
    • Security model
    • Archive format
    • Save file format
Back to top
Copyright ©
Made with Sphinx and @pradyunsg's Furo