Extra

From techdocs
Jump to navigation Jump to search

Generally speaking, the term "extra" in relations to CSE New World user-loginable hosts relates to local contents of the hosts' file system whose contents are not under the control of cfengine or CSG. Instead, they are under the control of users.

Note: For "user login-able" hosts read: lab computers, VLAB servers and login servers.

There are two scenarios where this happens. One is fairly tame. The other is far more interesting.

/localstorage

The tame one is /localstorage. This is additional local disk storage mounted at /localstorage on some hosts. Users can have a subdirectory — /localstorage/z1234567 where they can store whatever they want. This space is not backed up.

Most commonly this space is used for semi-important, persistent content that should be available for all of at least one teaching term. That's not to say that it will be available as the disk storage used on the hosts might fail or break, but CSG will not make any attempt to clean out any content and will just leave it alone.

One current formal use is as storage for databases on the "vxdb" servers in AWS. These are nw-syd-vxdb and nw-syd-vxdb2, two VLAB-like servers used for database teaching. The /localstorage space is used by students to develop and run their databases.

Again, note that this space is not backed up.

Also note that disk quotas apply.

Extra packages, extra files and extra versions

Part of the design model for New World was that "teaching" could have partial control of both the software packages installed on all user-loginable hosts, and additionally have relatively-full control of parts of the file systems where "they" can have whatever files and programs they want.

"Teaching" and "they" refer to teaching staff.

Broadly speaking, there is a conceptual split in that CSG is responsibly for the host platform, and "teaching" is responsible for the additional files and packages required for the various sorts of teaching which go on — e.g., packages, scripts, data files, etc. CSG thus makes sure users can log in, have access to their home directories, that the hosts are all running, that general tools and applications such as desktop environments, web browsers and text editors are available, that backups are done, that the virtual exam environment works, etc.

"Teaching" makes sure that compilers, debuggers, development tools, teaching-support tools, assignment tools, etc., are available and run.

The stuff that "teaching" controls is referred to as "extra".

There are, as indicated, two parts of this: extra packages and extra files.

Extra packages

See also extra packages.

Extra packages is simply a directory on the cfengine hub where "teaching" can store/mainatin arbitrary lists of standard Debian packages suing rsync. These lists are one-package-per-line text files. Files whose names end in .pkglist are treated as lists of packages to install, and files whose names end in .purge are treated as lists of packages to remove/purge.

Note that the packages specified in the lists may not include any version or repository information. Packages that do will simply be ignored.

cfengine on each host detects when these lists change and then runs apt-get to perform the appropriate actions.

Extra files and extra versions

See also extra files.

Extra storage (/localstorage) Additional local, un-backed up, storage available on some user login-able hosts which is available to users of the host.
Extra packages A mechanism to allow teaching staff to add and remove Debian packages from all user login-able hosts without the involvement of CSG.
Extra files A directory, /usr/local/extrafiles, which is present on all user login-able hosts and whose contents are managed by teaching staff without the involvement of CSG.
Extra versions An extension of the extra files allowing the contents (versions) of /usr/local/extrafiles to be different on different hosts.