services:labtest:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
services:labtest:start [2024/02/09 12:18] – jas | services:labtest:start [2025/04/02 13:53] (current) – jas | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Labtest Mode ====== | ====== Labtest Mode ====== | ||
- | Labtest mode provides a secure computing environment for in-lab testing. | + | The purpose of this document is to provide an explanation of what labtest mode is, how to request it for your course, how to set it up, and how to check that it is setup correctly. |
- | The purpose | + | ====== Introduction ====== |
+ | |||
+ | Labtest mode provides a secure computing environment for in-lab testing. | ||
+ | |||
+ | Faculty schedule labtests with the EECS tech team. A labtest reservation sometimes spans multiple computer labs depending on the number of students that will write the labtest at once. Faculty can schedule certain machines with extra time to accommodate students with alt exam requirements. | ||
+ | |||
+ | Prior to labtest time, faculty create a web page for their labtest. | ||
+ | |||
+ | Several minutes prior to labtest, students using the lab machines will receive a warning message on their display that the machine will be going into labtest mode and that they need to save their files. After the grace period (default | ||
+ | |||
+ | Once a machine boots into labtest mode, the login screen displays a banner that indicates that the machine is in labtest mode. If required, faculty can restrict which user can login to each host. | ||
+ | |||
+ | When students login, they are placed in the default desktop environment. A temporary home directory that is used for their work during labtest mode will be created. A web browser will automatically open and start at the default labtest home page. A description of labtest mode is displayed, and a disclaimer about remote monitoring. | ||
+ | |||
+ | Faculty can customize what happens when a student logs in to a machine. | ||
+ | |||
+ | If there is a power failure during labtest, then after power is restored, students can log back in and continue working on their labtest | ||
+ | |||
+ | If there is a hardware failure during labtest, then the student can move to another machine, and when they login, the TA will be prompted to authenticate, | ||
+ | |||
+ | During labtest, student home directory data is synchronized to a repository every 15 minutes. | ||
+ | |||
+ | Students will continue to work on their labtest for the duration of the test. Students use either command line submit, web submit, or in some cases eClass to submit their completed work. | ||
+ | |||
+ | During labtest, faculty can use remote monitoring software to monitor student screens in the lab. They can take complete control of the student lab computer, or lock their screen. They can capture a screenshot. | ||
+ | |||
+ | A few minutes before the end of the labtest, students will receive a warning message on their display that the labtest | ||
+ | |||
+ | Faculty can configure a custom list of websites that labtest machines can access during their test with complete URL control. | ||
+ | |||
+ | When Faculty are using eClass quizzes in labtest, access to messaging, " | ||
+ | |||
+ | During a labtest, faculty can access a web interface to extend the test duration. | ||
+ | |||
+ | Faculty can test their labtest via the web using labtest cloud (ltcloud) service. | ||
+ | |||
+ | ====== Labtest Setup with Labtest Assistant ====== | ||
+ | |||
+ | Setting up a labtest requires creating many files and directories on our system. | ||
+ | |||
+ | ===== Usage ===== | ||
+ | |||
+ | In order to setup your labtest, login to an EECS system via [[https:// | ||
+ | |||
+ | Open a Terminal, then start Labtest Assistant (labtest command) and pass in the concatenation | ||
+ | |||
+ | < | ||
+ | % labtest 7777a labtest1 | ||
+ | </ | ||
+ | |||
+ | NOTE: The test version name can be whatever you choose. | ||
+ | |||
+ | After you hit enter, this is what you will see: | ||
+ | |||
+ | < | ||
+ | There is no directory setup for this course. Create one ([y]/n) ?y | ||
+ | |||
+ | Creating / | ||
+ | Creating / | ||
+ | Creating / | ||
+ | Creating / | ||
+ | Creating / | ||
+ | Creating / | ||
+ | |||
+ | Would you like a submit directory to be set up for labtest1 ([y]/n) ?y | ||
+ | |||
+ | Creating / | ||
+ | |||
+ | Welcome to Labtest Assistant. Type " | ||
+ | |||
+ | Labtest (7777A) [labtest1] > | ||
+ | </ | ||
+ | |||
+ | Labtest Assistant recognized that no labtest had been previously setup for this course. | ||
+ | |||
+ | Now, let's edit the start page for your labtest using the gedit command: | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > gedit | ||
+ | </ | ||
+ | |||
+ | By default, the default start page for your labtest is called " | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > edit | ||
+ | </ | ||
+ | |||
+ | Modify the default page, and add your own information such as your rules for the test, and links to other content. | ||
+ | |||
+ | NOTE: If you're creating a labtest which points to an eClass quiz, you'll want to include a link to your quiz directly on this page. It will look like this: https:// | ||
+ | |||
+ | After you finish editing index.html, save the file. | ||
+ | |||
+ | Now, let's upload your labtest questions (eg. " | ||
+ | |||
+ | Once labtest.pdf is in your EECS home directory, use Labtest Assistant to upload it to your course | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > put labtest.pdf | ||
+ | |||
+ | Put success. | ||
+ | </ | ||
+ | |||
+ | Labtest Assistant will ensure that file permissions are setup correctly. | ||
+ | |||
+ | Students will be able to submit their work to your labtest with [[https:// | ||
+ | |||
+ | When you create a new labtest, Labtest Assistant automatically asks you if you want it to set up a submission directory for your test: | ||
+ | |||
+ | < | ||
+ | Would you like a submit directory to be set up for labtest1 ([y]/n) ?y | ||
+ | </ | ||
+ | |||
+ | If you choose " | ||
+ | |||
+ | If you are doing an eClass based labtest, you might not need students to submit anything, so you'll answer the question with " | ||
+ | |||
+ | If you make a mistake, | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] | ||
+ | |||
+ | Submit directory added. | ||
+ | |||
+ | Labtest (7777A) [labtest1] | ||
+ | |||
+ | Submit directory deleted. | ||
+ | </ | ||
+ | |||
+ | The default labtest start page already includes a link to web submit: https:// | ||
+ | |||
+ | Congratulations!! Your labtest is now setup! | ||
+ | |||
+ | Once you submit your [[https:// | ||
+ | |||
+ | ===== Available Commands ===== | ||
+ | |||
+ | Labtest Assistant provides assistance in many areas of labtest | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > help | ||
+ | |||
+ | status | ||
+ | list List labtest files/ | ||
+ | get < | ||
+ | put < | ||
+ | rename < | ||
+ | delete < | ||
+ | edit [< | ||
+ | gedit [< | ||
+ | import < | ||
+ | import < | ||
+ | files Open labtest directory in file manager | ||
+ | ltcloud | ||
+ | fix Fix file permissions | ||
+ | restore < | ||
+ | clear Clear the screen | ||
+ | quit | ||
+ | |||
+ | lock help Display lock help options | ||
+ | ltinit help Display ltinit help options | ||
+ | restrict help Display URL restriction help options | ||
+ | submit help Display submit help options | ||
+ | |||
+ | help/? | ||
+ | </ | ||
+ | |||
+ | A few notes: | ||
+ | |||
+ | * You'll see that you can not only " | ||
+ | * You can rename and delete files. | ||
+ | * If you've taught the course before, and taken the time to setup a labtest, you can use the import command to copy the entire labtest from a different course directory, even if it's from a different session or term. If you'd like to import a test from another test you've already created | ||
+ | * You can use the " | ||
+ | * You can use the " | ||
+ | * You can use the " | ||
+ | * You can use the " | ||
+ | |||
+ | There are also a few subcommands in Labtest Assistant - lock, ltinit, restrict, | ||
+ | |||
+ | ===== Labtest Lock ===== | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > lock help | ||
+ | |||
+ | Labtest Lock Mode Help: | ||
+ | |||
+ | In labtest lock mode, the student is placed in a limited environment | ||
+ | with no access to a terminal. | ||
+ | is Firefox web browser. | ||
+ | |||
+ | lock enable | ||
+ | lock disable | ||
+ | lock list List apps in lock mode | ||
+ | lock add <app> [< | ||
+ | lock delete < | ||
+ | lock help | ||
+ | |||
+ | NOTE: As there is no access to a terminal, apps must bring up a GUI. | ||
+ | |||
+ | Example: | ||
+ | |||
+ | Enable lock mode (by default includes Web browser access only): | ||
+ | |||
+ | > lock enable | ||
+ | |||
+ | Want to make Eclipse available in lock mode? | ||
+ | |||
+ | > lock add eclipse | ||
+ | |||
+ | Add Matlab to lock mode (requires the option -desktop): | ||
+ | |||
+ | > lock add matlab -desktop | ||
+ | |||
+ | DISCLAIMER: Not all applications are suitable | ||
+ | requires access | ||
+ | </ | ||
+ | |||
+ | ===== Labtest Init ===== | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > ltinit help | ||
+ | |||
+ | Labtest Ltinit Help: | ||
+ | |||
+ | ltinit list List files in ltinit | ||
+ | ltinit get < | ||
+ | ltinit put < | ||
+ | ltinit rename < | ||
+ | ltinit delete < | ||
+ | ltinit edit < | ||
+ | ltinit help | ||
+ | </ | ||
+ | |||
+ | Using the " | ||
+ | |||
+ | ===== Labtest Restrict ===== | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > restrict help | ||
+ | |||
+ | Labtest URL Restriction Help: | ||
+ | |||
+ | restrict list List labtest URL restrictions (including line numbers) | ||
+ | restrict add < | ||
+ | restrict eclass | ||
+ | restrict delete < | ||
+ | restrict edit Edit labtest restrictions | ||
+ | restrict help Display this help text | ||
+ | |||
+ | To allow access to www.w3schools.com, | ||
+ | |||
+ | labtest> restrict add www.w3schools.com | ||
+ | labtest> restrict add validator.w3.org | ||
+ | |||
+ | To reject one page on www.w3schools.com: | ||
+ | |||
+ | labtest> restrict add -www.w3schools.com/ | ||
+ | |||
+ | (*) To allow access to eClass Quiz/VPL, please read the following web page: | ||
+ | |||
+ | https:// | ||
+ | |||
+ | *** Don't forget - ALWAYS test your eClass quiz using ltcloud! https:// | ||
+ | </ | ||
+ | |||
+ | By default, labtest doesn' | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | For eClass specific restrictions, | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | Labtest restrictions are entirely optional. | ||
+ | |||
+ | ===== Labtest Submit ===== | ||
+ | |||
+ | < | ||
+ | Labtest (7777A) [labtest1] > submit help | ||
+ | |||
+ | Labtest Submit Directory Help: | ||
+ | |||
+ | submit status | ||
+ | submit add Add labtest submit directory | ||
+ | submit delete | ||
+ | submit enable | ||
+ | submit disable | ||
+ | submit files Open submit directory in file manager | ||
+ | submit help Display this help text | ||
+ | </ | ||
====== Requesting Labtest Mode ====== | ====== Requesting Labtest Mode ====== | ||
Line 16: | Line 305: | ||
* EECS TA user IDs (they will be able to help students move between machines in a labtest) (eg. johns, alicez, aigha) (*) | * EECS TA user IDs (they will be able to help students move between machines in a labtest) (eg. johns, alicez, aigha) (*) | ||
- | (*) Please make sure that you **only send us EECS user IDs** - not full names, gmail, or other alternate email. | + | (*) Please make sure that you **only send us EECS user IDs** - not full names, |
For **subsequent** labtest bookings in your course, please always include in your booking: | For **subsequent** labtest bookings in your course, please always include in your booking: | ||
Line 23: | Line 312: | ||
* Course Section (eg. A) | * Course Section (eg. A) | ||
- | You do not need to include EECS faculty admin user IDs or EECS TA user IDs because these are only configured the first time. | + | You do not need to include EECS faculty admin user IDs or EECS TA user IDs with subsequent bookings, **unless they change**. |
- | Please provide the details of your labtest booking **in this format** | + | Please provide the details of your labtest booking **in this format |
< | < | ||
# < | # < | ||
- | MM/ | + | #version: < |
- | MM/ | + | MM/ |
+ | MM/ | ||
</ | </ | ||
... where: | ... where: | ||
- | * < | + | * < |
+ | * If you have setup multiple versions of your labtest, you'll need to let us know the version name for this test. (eg: #version: labtest1-lab1) -- if you configured your labtest to use a version name (eg labtest1-lab1), | ||
* MM/DD/YYYY - month, day, and year for your labtest (eg. 06/20/2023) | * MM/DD/YYYY - month, day, and year for your labtest (eg. 06/20/2023) | ||
* HH:MM - hour:minute hour of your test (note that this is impacted by the next field) | * HH:MM - hour:minute hour of your test (note that this is impacted by the next field) | ||
* M - number of minutes of warnings to send to students before system will reboot (usually 5) - NOTE: If M=5, machines will REBOOT at HH:MM + 5 MIN, NOT at HH:MM | * M - number of minutes of warnings to send to students before system will reboot (usually 5) - NOTE: If M=5, machines will REBOOT at HH:MM + 5 MIN, NOT at HH:MM | ||
- | * <HOSTSPEC> - lets us know which hosts you want to book. < | + | * HOSTSPEC - lets us know which hosts you want to book. < |
* individual machines separated by commas: ea01, | * individual machines separated by commas: ea01, | ||
- | * groups of machines: ea 01-78,ptl 01-10 (all the machines between ea01-ea78, and ptl01-ptl10) | + | * groups of machines: |
- | * You can even exclude machines using a -: ea 01-78, | + | * To specify machines ea01-ea78 use: ea 01-78 |
+ | * To specify machines ptl01-ptl10p use: ptl 01-10 | ||
+ | * You can even exclude machines using a minus (-): | ||
+ | * To include machines ea01-ea78, but exclude ea10 and ea11: ea 01-78, | ||
Here's information on the machines typically booked for labtest: | Here's information on the machines typically booked for labtest: | ||
Line 54: | Line 348: | ||
|[[https:// | |[[https:// | ||
- | **NOTE:** Click on the room name to see the room layout. | + | **NOTE:** Click on the room name to see the room layout. |
+ | |||
+ | **NOTE:** The " | ||
- | Please | + | Please only submit your labtest |
Here's an example labtest booking to get you started: | Here's an example labtest booking to get you started: | ||
Line 62: | Line 358: | ||
< | < | ||
# labtest1-LAB1 | # labtest1-LAB1 | ||
+ | # version: labtest1-lab1 | ||
06/ | 06/ | ||
06/ | 06/ | ||
Line 73: | Line 370: | ||
* At 11:50 PM, machines will reboot from Labest mode back to Linux mode. | * At 11:50 PM, machines will reboot from Labest mode back to Linux mode. | ||
- | **Please ensure that your labtest | + | **Please ensure that your labtest ends 10 minutes |
- | If you have students with different accommodations for extra time, please submit a separate | + | If you used a labtest version name of labtest1-lab1 for this booking, you would add the additional version line to the booking request: |
+ | |||
+ | < | ||
+ | # labtest1-LAB1 | ||
+ | # version: labtest1-lab1 | ||
+ | 06/ | ||
+ | 06/ | ||
+ | </ | ||
+ | |||
+ | If you have students with different accommodations for extra time, please submit a **separate** block for each accommodation type. Here's the same booking request above with 5 machines getting an extra hour, 2 machines getting 30 minutes extra, and 1 machine getting | ||
< | < | ||
# labtest1-LAB1 MAIN | # labtest1-LAB1 MAIN | ||
+ | # version: labtest1-lab1 | ||
06/ | 06/ | ||
06/ | 06/ | ||
# labtest1-LAB1 ACCOMMODATION - 5 machines getting extra hour | # labtest1-LAB1 ACCOMMODATION - 5 machines getting extra hour | ||
+ | # version: labtest1-lab1 | ||
06/ | 06/ | ||
06/ | 06/ | ||
# labtest1-LAB1 ACCOMMODATION - 2 students getting extra 30 minutes | # labtest1-LAB1 ACCOMMODATION - 2 students getting extra 30 minutes | ||
+ | # version: labtest1-lab1 | ||
06/ | 06/ | ||
06/ | 06/ | ||
# labtest1-LAB1 ACCOMMODATION - 1 student getting extra 20 minutes | # labtest1-LAB1 ACCOMMODATION - 1 student getting extra 20 minutes | ||
+ | # version: labtest1-lab1 | ||
06/ | 06/ | ||
06/ | 06/ | ||
</ | </ | ||
- | **Remember - you labtest booking must end 10 minutes before your lab booking.** | + | **Remember - your labtest booking must end 10 minutes before your lab booking.** |
- | If you are booking back to back labtest sessions (eg. 9:00 AM - 11:00 AM, then 11:00 AM - 1:00 PM), it doesn' | + | Notice that the start and end blocks must be grouped together. |
- | + | ||
- | Two labtests in one booking (9 AM - 1 PM) - you have to clear the lab between sessions yourself: | + | |
+ | If you are booking back to back labtest sessions (eg. 9:00 AM - 11:00 AM, then 11:00 AM - 1:00 PM), you have two choices: | ||
< | < | ||
- | # labtest1-LAB1 and LAB2 | ||
- | 06/ | ||
- | 06/ | ||
- | </ | ||
- | Two labtests in two separate back to back sessions. | ||
- | |||
- | < | ||
# labtest1-LAB1 | # labtest1-LAB1 | ||
+ | # version: labtest1-lab1 | ||
06/ | 06/ | ||
- | 06/ | + | 06/ |
# labtest1-LAB2 | # labtest1-LAB2 | ||
+ | # version: labtest1-lab2 | ||
06/ | 06/ | ||
- | 06/ | + | 06/ |
</ | </ | ||
- | After you have submitted your labtest booking, someone from tech will get back to you to confirm your booking. | + | ... or you can create one long session 9:00 AM - 1:00 PM, but you will have to clear the lab manually between sessions yourself: |
- | If you have any questions about labtest | + | < |
+ | # labtest1-LAB1 and LAB2 | ||
+ | # version: labtest1 | ||
+ | 06/ | ||
+ | 06/ | ||
+ | </ | ||
- | ====== On the Day of Your Labtest ====== | + | After you have submitted your labtest booking, someone from tech will get back to you to confirm your booking. |
- | Several minutes prior to your labtest, students using the lab machines will receive a warning message on their display that the machine will be going into labtest mode and that they need to save their files. | + | If you have any questions about labtest |
- | + | ||
- | Once a machine boots into labtest mode, the login screen displays a banner that indicates that the machine is in labtest mode. It's a good idea for you or your TAs to have a quick visual check in the lab to ensure that all the machines are in labtest | + | |
- | + | ||
- | When students login, they are placed in the default desktop environment | + | |
- | + | ||
- | Students will continue to work on their labtest for the duration of the test. Students using their own personal accounts can use either command line submit or web submit to submit their work. First year students using the generic " | + | |
- | + | ||
- | A few minutes before the end of the labtest, students will receive a warning message on their display that the labtest is about to end. At the end of the lab test, all the machines are automatically rebooted and placed back into their original mode (Linux or Windows). When a machine is switched back to the standard operating mode, the temporary labtest home directories will be removed. In the event of a power failure, students using their own personal accounts will be able to log back in and continue working if the power returns before the labtest session is over. Students using the generic " | + | |
====== Basic Labtest Setup ====== | ====== Basic Labtest Setup ====== | ||
+ | |||
+ | Now that we've seen how to setup a labtest using Labtest Assistant, we'll look at how to setup a labtest manually. | ||
In order to setup a basic labtest, you must complete the following 4 basic steps: | In order to setup a basic labtest, you must complete the following 4 basic steps: | ||
Line 141: | Line 444: | ||
===== 1. Create Directories ===== | ===== 1. Create Directories ===== | ||
- | First, if you haven' | + | First, if you haven' |
- | mkdir / | + | mkdir / |
Now create a subdirectory in the course web directory called " | Now create a subdirectory in the course web directory called " | ||
- | mkdir / | + | mkdir / |
+ | |||
+ | Inside the labtest directory, create a directory for each version of the test that you will have. If you will only have one test version (which is the most common scenario), this directory is called " | ||
+ | |||
+ | mkdir / | ||
+ | |||
+ | If you have a course with multiple labs at different times throughout the week, you may choose to have different test versions. | ||
+ | |||
+ | mkdir / | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | |||
+ | NOTE: For the purposes of simplicity, this documentation will frequently refer to / | ||
+ | |||
+ | ===== 2. Create a Labtest Start Page ===== | ||
+ | |||
+ | Students will see the labtest start page when they begin your labtest. | ||
+ | |||
+ | If you have only one test version, the full path to the file might be: / | ||
+ | |||
+ | If you have three test versions, you would have: / | ||
+ | |||
+ | ==== Basic Start Page ==== | ||
- | The " | + | Here's a basic example |
< | < | ||
- | mkdir /eecs/dept/www/course/9999/labtest/test1 | + | < |
- | mkdir /eecs/ | + | < |
+ | < | ||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | < | ||
+ | |||
+ | </body> | ||
+ | </html> | ||
</ | </ | ||
- | NOTE: For the purposes of simplicity, this documentation will frequently refer to / | + | On your start page, you can include information about the test, your rules and policies, the labtest questions (or a link to a PDF with the questions), |
+ | |||
+ | For your convenience, you may choose to provide a link to "/common" | ||
+ | Note: You cannot include links to content outside your labtest web directory. | ||
- | ===== 2. Create a Start Page ===== | + | ==== eClass Quiz Start Page ==== |
- | Create a start page in your "labtest" directory, and call it " | + | If you are hosting |
- | For your convenience, | + | < |
+ | < | ||
- | Note: If you decide to have different directories in your labtest directory for each labtest, you still need to have a common index.html file. | + | < |
+ | < | ||
+ | <meta http-equiv=" | ||
+ | </ | ||
+ | < | ||
- | Note: You cannot include links to content outside your labtest web directory. Your regular course directory, or other Departmental web links will not be available during labtest. | + | < |
+ | |||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | NOTE: Replace " | ||
===== 3. Create and/or Install Additional Content ===== | ===== 3. Create and/or Install Additional Content ===== | ||
Line 181: | Line 533: | ||
Make sure that your course directory is accessible to the labtest user: | Make sure that your course directory is accessible to the labtest user: | ||
- | chmod 755 / | + | chmod 755 / |
- | Make sure that your labtest directory | + | Make sure that your labtest directory |
- | chgrp -R labtest / | + | chgrp -R labtest / |
- | Make sure that your labtest directory is ONLY accessible to you and group labtest: | + | Make sure that your labtest directory is accessible to everyone: |
- | chmod 750 / | + | chmod 755 / |
- | Ensure | + | Make sure that each of your labtest version directories are accessible to only you and group labtest: |
- | chmod 640 / | + | chmod 750 / |
- | You will also want to make sure the other files and directories inside | + | Make sure that your index.html is readable by group labtest. |
- | Be very careful with your labtest | + | chmod 640 / |
- | ====== Enable or Disable | + | You will also want to make sure the other files and directories inside |
- | Two simple commands have been created that assist you with enabling or disabling | + | Be very careful |
- | ===== ltenable ===== | + | An automatic system process which runs every hour will check and fix your top-level labtest directory permission if set incorrectly. |
- | Run the // | + | If you have any doubt about your labtest directory and file permissions, please consult with tech. |
- | For example, to fix permissions on the labtest directory | + | You can fix all labtest directory |
- | | + | |
- | + | ||
- | All files and directories | + | ... it will ensure |
- | + | ||
- | ===== ltdisable ===== | + | |
- | + | ||
- | To disable a labtest so that it is not available while in labtest mode, use the // | + | |
- | + | ||
- | For example: | + | |
- | + | ||
- | ltdisable / | + | |
- | + | ||
- | ** NOTE: ltenable/ | + | |
====== Submit ====== | ====== Submit ====== | ||
Line 230: | Line 572: | ||
* [[services: | * [[services: | ||
- | NOTE: Users who are logged in using the generic " | + | If they use web submit, they will be automatically |
===== Submit Directory Setup ===== | ===== Submit Directory Setup ===== | ||
- | Whether your students will be submitting via command line submit, or web submit, you must follow this procedure to setup a directory in your course | + | Whether your students will be submitting via command line submit, or web submit, you must follow this procedure to setup a submit |
1. Create and set permissions on a " | 1. Create and set permissions on a " | ||
+ | mkdir / | ||
mkdir / | mkdir / | ||
+ | chmod 755 / | ||
chmod 755 / | chmod 755 / | ||
Line 261: | Line 605: | ||
When your labtest is setup, it will be connected to a specific session, term, and course. | When your labtest is setup, it will be connected to a specific session, term, and course. | ||
- | Students can also submit using [[https:// | + | Students can also submit using [[https:// |
+ | |||
+ | Like command line submit, the session, term, and course directory will not be switchable by the student, and must be configured at the time of your labtest booking. | ||
+ | |||
+ | ===== Returning Labtest Submissions to Students Following Labtest ===== | ||
+ | |||
+ | Sometimes, following a labtest, faculty want students to be able to retrieve their labtest submission. | ||
+ | |||
+ | In order to make this possible, complete the following steps: | ||
+ | |||
+ | Copy the files from the labtest submit directory to a different directory - for example: | ||
+ | |||
+ | cd / | ||
+ | cp -pr labtest1 labtest1-return | ||
+ | |||
+ | Make all the files in the new submit directory readable by group " | ||
+ | |||
+ | chgrp -R submit labtest1-return | ||
+ | |||
+ | Finally, ensure that students can only retrieve their submission, and not re-submit: | ||
+ | |||
+ | chmod 750 labtest1-return | ||
+ | |||
+ | Now, when students login to web submit outside of labtest, and choose their course, they will see an assignment " | ||
====== Unsubmit (optional) ====== | ====== Unsubmit (optional) ====== | ||
Line 485: | Line 852: | ||
====== Custom File Copy on User Login (optional) ====== | ====== Custom File Copy on User Login (optional) ====== | ||
- | If you want to be able to initialize a students labtest home directory with certain files or directories when he logs in, simply create a directory called " | + | If you want to be able to initialize a students labtest home directory with certain files or directories when he logs in, simply create a directory called " |
For example: | For example: | ||
Line 500: | Line 867: | ||
When the student logs in, he will have a directory in his home directory called " | When the student logs in, he will have a directory in his home directory called " | ||
- | If you are experimenting with this functionality for your course, please consult with tech. We can place a machine into labtest mode to check that your files will be copied in the way you expect. | + | If you are experimenting with this functionality for your course, please consult with tech. |
====== Custom Shell Script Execution on User Login (optional) ====== | ====== Custom Shell Script Execution on User Login (optional) ====== | ||
Line 506: | Line 873: | ||
Labtest can run a custom shell script on login in order to initialize a student home directory. | Labtest can run a custom shell script on login in order to initialize a student home directory. | ||
- | Let's assume a course of EECS9999. | + | Let's assume a course of EECS9999. |
< | < | ||
Line 529: | Line 896: | ||
chgrp labtest / | chgrp labtest / | ||
chmod g=rx / | chmod g=rx / | ||
+ | </ | ||
+ | |||
+ | If you are using commands from / | ||
+ | |||
+ | < | ||
+ | #/bin/sh | ||
+ | |||
+ | PATH=/ | ||
+ | code --install-extension ~/ | ||
</ | </ | ||
If you are experimenting with this functionality for your course, please consult with tech. We can review your script with you before your test, and place a machine into labtest mode to check that it works the way you expect. | If you are experimenting with this functionality for your course, please consult with tech. We can review your script with you before your test, and place a machine into labtest mode to check that it works the way you expect. | ||
+ | |||
+ | ====== Labtest Lock Mode (optional) ====== | ||
+ | |||
+ | By default, users in labtest can still use any software on our systems. | ||
+ | |||
+ | To enable locked mode with just a web browser only, touch the file " | ||
+ | |||
+ | % touch / | ||
+ | % chmod 644 / | ||
+ | | ||
+ | Now if you test your labtest in ltcloud, the user will only be able to access the Firefox web browser. | ||
+ | |||
+ | If you want additional software to be accessible in labtest, it must use a GUI. You add to the lock file lines of the following format: | ||
+ | |||
+ | <app name>,< | ||
+ | |||
+ | For example, if you want Eclipse to be available in lock mode, you would add to the lock file: | ||
+ | |||
+ | eclipse | ||
+ | |||
+ | By default, there are no optional arguments, and if no alternate display name is mentioned, then it will appear in the menu with the same name as the command name, but with the first letter capitalized (" | ||
+ | |||
+ | If you want to add Matlab: | ||
+ | |||
+ | matlab, | ||
+ | |||
+ | In order to run " | ||
+ | |||
+ | On the other hand, if you wanted to include Visual Studio Code, you would add: | ||
+ | |||
+ | code,, | ||
+ | |||
+ | Now, " | ||
+ | |||
+ | In labtest lock mode, the window environment is a little different in order to support the locked down nature of the environment. | ||
+ | |||
+ | When labtest mode is started, a web browser will appear with the labtest start page. Additional software will be available by right clicking the desktop, or by clicking on the "Apps & Logout" | ||
+ | |||
+ | Please ensure that you're careful when allowing access to software in lock mode. Giving access to additional software may have unintended side effects. | ||
====== Accessing External Hosts In Labtest (optional) ====== | ====== Accessing External Hosts In Labtest (optional) ====== | ||
- | Your labtest may require students to access | + | Your labtest may require students to access external |
- | Labtest provides two methods for you to allow access to external hosts: | + | With host level access control, |
- | * Host Level Access Control | + | Let's say you're teaching a course EECS9999, |
- | * Host and URL Level Access Control | + | |
- | ===== Host Level Access Control ===== | + | **Setup With Labtest Assistant** |
- | With host level access control, you can give your labtest access to specific hosts such as www.w3schools.com. | + | From within Labtest Assistant, use the " |
- | Create a file called " | + | <code> |
+ | Labtest (9999) [labtest1] | ||
+ | |||
+ | Restriction www.w3schools.com inserted. | ||
+ | |||
+ | Labtest (9999) [labtest1] | ||
+ | |||
+ | Restriction validator.w3.org inserted. | ||
+ | </ | ||
+ | |||
+ | You can use " | ||
+ | |||
+ | **Setup Manually** | ||
- | For example, if you're teaching a course EECS9999, and you want students in your labtest | + | If you are setting |
< | < | ||
www.w3schools.com | www.w3schools.com | ||
validator.w3.org | validator.w3.org | ||
- | www.testing.com 8080 | ||
</ | </ | ||
Line 563: | Line 988: | ||
</ | </ | ||
- | Please note that if the web site you are trying to access | + | **Please note that if the web site you are trying to access |
- | Please | + | Labtest |
- | If you are experimenting | + | **Setup |
- | ** CAUTION * CAUTION * CAUTION * CAUTION ** | + | From within Labtest Assistant, use the " |
- | Please be mindful of side effects that may be introduced by the use of this labtest functionality. | + | < |
+ | Labtest (9999) [labtest1] | ||
- | ** CAUTION * CAUTION * CAUTION * CAUTION ** | + | Restriction www.w3schools.com/ |
- | Note: You do not need to specify hosts required for PassportYork authentication or Duo MFA as these are automatically added. | + | Labtest (9999) [labtest1] |
- | ===== Host and URL Level Access Control ===== | + | |
+ | </ | ||
- | With host and URL level access control, you not only control what web sites your students can access, but which specific URLs on those web sites they can access. | + | **Setup Manually** |
- | You will still create a labtest.allow file which tells the labtest environment which hosts the students can access. In addition, you will also specify in labtest.allow | + | Add "www.w3schools.com/ |
- | It is best to demonstrate host and URL level access control with an example. | + | Now, during your labtest, if you try to visit anything but " |
- | | + | However, you will also notice that the page doesn' |
- | Now you need to specify the URL fragments to accept: | + | **Setup with Labtest Assistant** |
- | +www.w3schools.com/ | + | Once again, use the restrict command: |
- | Remember that a line starting with a " | + | < |
+ | Labtest | ||
- | Now, our labtest.allow file only contains these two lines: | + | Restriction www.w3schools.com/ |
- | www.w3schools.com | + | Labtest (9999) [labtest1] |
- | +www.w3schools.com/ | + | |
- | If you tried to visit this site in labtest mode, you would find that it doesn' | + | Restriction www.w3schools.com/plus inserted. |
- | www.w3schools.com | + | Labtest (9999) [labtest1] |
- | +www.w3schools.com/ | + | |
- | +.png | + | |
- | +.svg | + | |
- | +/fonts/ | + | |
- | +.js | + | |
- | +.css | + | |
- | +/ | + | |
- | Visit " | + | 1 www.w3schools.com/html |
+ | 2 www.w3schools.com/lib | ||
+ | 3 www.w3schools.com/ | ||
+ | </code> | ||
- | Now, let's say there' | + | **Setup Manually** |
+ | |||
+ | Add " | ||
< | < | ||
- | -www.w3schools.com/ | + | www.w3schools.com/ |
+ | www.w3schools.com/lib | ||
+ | www.w3schools.com/ | ||
</ | </ | ||
+ | |||
+ | Now, let's say there' | ||
+ | |||
+ | **Setup with Labtest Assistant** | ||
+ | |||
+ | Again, use the restrict command: | ||
+ | < | ||
+ | Labtest (9999) [labtest1] | ||
+ | |||
+ | Restriction -www.w3schools.com/ | ||
+ | |||
+ | Labtest (9999) [labtest1] | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | **Setup Manually** | ||
+ | |||
+ | Add the following rule to labtest.allow: | ||
+ | |||
+ | -www.w3schools.com/ | ||
NOTE: Rejected URL fragments are processed before accepted URL fragments. | NOTE: Rejected URL fragments are processed before accepted URL fragments. | ||
Line 621: | Line 1072: | ||
A few important notes: | A few important notes: | ||
- | 1) For every host that you wish to provide any level of access | + | 1) For every website |
- | 2) For host and URL based access control, you must also specify accept (+) and reject (-) URL fragments. | + | 2) All external |
3) Reject fragments are processed before accept fragments. | 3) Reject fragments are processed before accept fragments. | ||
Line 631: | Line 1082: | ||
5) Always test your labtest in ltcloud every single time! Just because your labtest.allow rules work for one test doesn' | 5) Always test your labtest in ltcloud every single time! Just because your labtest.allow rules work for one test doesn' | ||
- | Now that you've seen how to protect access to URLs on one web site, let's look at one additional example. Many faculty use eclass | + | ====== Accessing External Hosts In Labtest (eClass Example) ====== |
+ | |||
+ | eClass is the name of the Moodle-based Learning Management System (LMS) used at York University. Many faculty use eClass quizzes | ||
+ | |||
+ | * Students can upload files to eClass under " | ||
+ | * During a quiz, students have access to all course materials posted to any eClass course page where the student is registered. The faculty member will not know what materials students can access. | ||
+ | * Students have access to eClass course forums. | ||
+ | * Students have access to eClass communication and can chat with other students. | ||
+ | |||
+ | In this section, we will configure | ||
+ | |||
+ | ===== 1. Allow Lab Machines Limited Access To eClass In Labtest Mode ===== | ||
+ | |||
+ | First, you need to allow the lab machines limited access | ||
+ | |||
+ | If you're using Labtest Assistant, | ||
+ | |||
+ | < | ||
+ | labtest> restrict eclass | ||
+ | </ | ||
+ | |||
+ | If you're not using Labtest Assistant, you need to create | ||
+ | |||
+ | < | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | dm7crvy4e45rz.cloudfront.net | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | eclass.yorku.ca/ | ||
+ | </ | ||
+ | |||
+ | ===== 2. Determine Your eClass Quiz URL ===== | ||
+ | |||
+ | Visit your eClass quiz from your machine that is **not** in labtest mode. Grab the quiz URL from the URL bar in your web browser. | ||
+ | |||
+ | You can also get this link in eClass if you go to: Activities >> Quizzes then hover your mouse over your quiz. | ||
+ | |||
+ | ===== 3. Allow Access To Your eClass Quiz ID In Labtest Mode ===== | ||
+ | |||
+ | If you're using Labtest Assistant, use the following command to allow access your eClass quiz in labtest: | ||
+ | |||
+ | < | ||
+ | labtest> restrict add eclass.yorku.ca/ | ||
+ | </ | ||
+ | |||
+ | Replace ID with your eClass Quiz ID. | ||
+ | |||
+ | If you're not using Labtest Assistant, add the following line to the end of your labtest.allow file in your labtest directory: | ||
+ | |||
+ | < | ||
+ | eclass.yorku.ca/ | ||
+ | </ | ||
+ | |||
+ | Replace ID with your eClass Quiz ID. | ||
+ | |||
+ | Ensure that the labtest.allow file is readable: < | ||
+ | |||
+ | ===== 4. Provide a Link to Your eClass Quiz in Your Labtest Start Page ===== | ||
+ | |||
+ | Your labtest start page (eg. / | ||
+ | |||
+ | If you're using Labtest Assistant, open your labtest start page using the " | ||
+ | |||
+ | < | ||
+ | Click <a href="https:// | ||
+ | </ | ||
+ | |||
+ | If you're not using Labtest Assistant, open the index.html file in your labtest directory, and add the link manually. | ||
+ | |||
+ | **IMPORTANT** If students try to access " | ||
+ | |||
+ | ===== 5. Restrict IP Addresses Which Can Access Your eClass Quiz From Within eClass ===== | ||
+ | |||
+ | Login to eClass. | ||
+ | |||
+ | ^Lab Location^IP Restriction^ | ||
+ | |LAS1002|130.63.96.168/ | ||
+ | |LAS1002B|130.63.96.203/ | ||
+ | |LAS1004|130.63.96.131/ | ||
+ | |LAS1006|130.63.96.48/ | ||
+ | |LAS2007|130.63.96.230/ | ||
+ | |WSC105|130.63.131.34/ | ||
+ | |WSC106|130.63.131.84/ | ||
+ | |WSC108|130.63.131.135/ | ||
+ | |LTCLOUD|130.63.94.193/ | ||
+ | |||
+ | NOTES: | ||
+ | * If you are using all 3 of WSC105, WSC106, AND WSC108, use instead: 130.63.131.0/ | ||
+ | * If you are testing in ltcloud, please ensure that you include both the IP range for the required lab followed by a comma followed by the ltcloud range. | ||
+ | * If your test is being conducted in several labs, you can join two IP ranges with a comma in between them. Note though that if the number of IP ranges separated by commas exceeds 18, the IP restrictions will not function correctly due to an eClass bug. Please consult with tech to test your IP range prior to your test. | ||
- | eclass.yorku.ca | + | ===== 6. Limit the Start and End Time of Your Quiz in eClass ===== |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | +eclass.yorku.ca/ | + | |
- | cdn.jsdelivr.net | + | |
- | +cdn.jsdelivr.net | + | |
- | www.googletagmanager.com | + | |
- | +www.googletagmanager.com | + | |
- | fonts.googleapis.com | + | |
- | +fonts.googleapis.com | + | |
- | Students won't be able to access | + | You will need to limit the start and end time of your quiz in eClass. |
- | **IMPORTANT NOTES:** | + | Final Notes: |
- | * eclass permits students with access | + | * Some faculty would like to use eClass |
- | * Controlling allowed URLs is only one way to protect the integrity of your eclass quiz. It is recommended that you protect the quiz based on start and end time, and IP addresses as well. | + | * If you're using VPL, you'll need to allow access to the following URL fragments with either " |
- | * Since all of our lab PCs use different IP addresses, consult with tech if you want to block access to your eclass based on IP address. | + | * eclass.yorku.ca/ |
- | * If you protect your eclass quiz based on start time, please note that if you have the lab machines booting into labtest mode minutes before the time of your test, then if students login early, and click on the quiz link in your index.html file, eclass will try to redirect them back to the course eclass page. In labtest mode, eclass.yorku.ca/ | + | * vpl1.eecs.yorku.ca |
+ | * **Always test your eClass quiz using ltcloud! | ||
====== SecureQ Setup (optional) ====== | ====== SecureQ Setup (optional) ====== | ||
Line 773: | Line 1309: | ||
\\ | \\ | ||
WARNING: Before you can re-use the same secureq directory for another test, at a minimum, you must move any existing “secureq/ | WARNING: Before you can re-use the same secureq directory for another test, at a minimum, you must move any existing “secureq/ | ||
+ | |||
+ | ====== Labtest and Containers ====== | ||
+ | |||
+ | It may be helpful to some courses to use containers from within labtest. | ||
+ | |||
+ | Download an Ubuntu image: | ||
+ | |||
+ | < | ||
+ | % podman pull ubuntu: | ||
+ | </ | ||
+ | |||
+ | **NOTE:** Your EECS home directory has limited storage space and is on network storage. | ||
+ | |||
+ | Start up the container from the ubuntu: | ||
+ | |||
+ | < | ||
+ | % podman run -it --name my-ubuntu ubuntu: | ||
+ | </ | ||
+ | | ||
+ | Make changes -- in this case, we'll just add an empty file named " | ||
+ | |||
+ | < | ||
+ | # cd | ||
+ | # touch file | ||
+ | # exit | ||
+ | </ | ||
+ | |||
+ | Now let's stop the container: | ||
+ | |||
+ | < | ||
+ | % podman stop my-ubuntu | ||
+ | </ | ||
+ | |||
+ | Commit the changes in my-ubuntu container to my-new-ubuntu image: | ||
+ | |||
+ | < | ||
+ | % podman commit my-ubuntu my-new-ubuntu | ||
+ | </ | ||
+ | |||
+ | Save the image to a tar file: | ||
+ | |||
+ | < | ||
+ | % podman save -o my-new-ubuntu.tar my-new-ubuntu | ||
+ | </ | ||
+ | |||
+ | Place my-new-ubuntu.tar into ltinit directory in the course labtest web directory: | ||
+ | |||
+ | In ltinit/ | ||
+ | |||
+ | < | ||
+ | podman load -i $HOME/ | ||
+ | podman run -dit --name labtest my-new-ubuntu | ||
+ | gnome-terminal -- podman exec -it labtest bash | ||
+ | </ | ||
+ | |||
+ | Now, when the user logs in, the image is unpacked and loaded. Podman run starts the container. | ||
+ | |||
+ | * -d runs it in the background (detached). | ||
+ | * -i keeps stdin open. | ||
+ | * -t allocates a pseudo-tty. | ||
+ | * --name labtest names the container labtest. | ||
+ | * my-new-ubuntu is the image used to create the container | ||
+ | |||
+ | **NOTE:** Large container downloads with large multi lab labtests could result in performance issues since all users will be downloading the container on login. | ||
====== Labtest File Synchronization (ltsave) ====== | ====== Labtest File Synchronization (ltsave) ====== | ||
Line 1046: | Line 1646: | ||
Access the Labtest Cloud URL here: | Access the Labtest Cloud URL here: | ||
- | * https:// | + | * https:// |
+ | |||
+ | The best way to access ltcloud is directly from a web browser when you are connected to [[https:// | ||
+ | If you want to access LTCloud directly from your home PC, you can use [[https:// | ||
- | Note that if you are accessing this URL from a non-EECS IP address (such as from home), you must be connected to [[https:// | ||
- | |||
After connecting to the Labtest Cloud URL, you will be required to authenticate with your EECS username and password. | After connecting to the Labtest Cloud URL, you will be required to authenticate with your EECS username and password. | ||
services/labtest/start.1707499098.txt.gz · Last modified: by jas