Syncronicity

 

So you want to use this

It involves a lot of steps. Ideally we'll have an abstract/intro right here, followed by an outline. The outline will then have links down the page to the sections you need help on.

Disclaimer

If you use this software we hold no responsibility for the damages it may cause on the computers you install it to. You can and will damage the operating system and data on the computers without a proper understanding of how to use Syncronicity.

Here we go!

Congratulations! You’ve just been hired as Carleton’s newest sysadmin, and you’ve been tasked with using Syncronicity to manage all the Windows 7 computers in the Arts Union. It’s your job to install Windows 7 and all the other software on these computers. Before starting, the sysadmin will need to have a fresh computer without anything installed on it and a server that will be accessible to all the computers they’ll be maintaining with our program. The first thing to do is install the operating system, in this case Windows 7. Then the sysadmin will open Syncronicity.

To start you’ll open up our lovely User Interface. First you’ll need to build a database of your labs, and the computers in those labs. A lab is exactly what it sounds like, basically a room with a bunch of computers in it. The lab structure allows the sysadmin to keep track of computers and their needs. For instance, one lab may be a CAMS lab, so the sysadmin will know to add video editing software to all the computers in that lab. You can add labs and computers individually using the drop down or right click menus. You even have an option to select a lab and add the computer you’re currently using to it.

Or, you can use our handy Import feature. Chances are that the sysadmin will already have a list of all the computers they’re responsible for, so it will save time to import that file, rather than individually entering labs and computers. The file format is simple, it’s basically just a text file with each line consisting of the a labname followed by a computer in that lab. Whenever the user interface is closed, it saves the database to a file on the server, so that it can be accessed by other computers, which I’ll get to in a bit.

The other key element of the user interface is packages*. Packages consist of a bunch of folders with files, some registry keys and values, and indexes of those things. The index is basically just a map of the filesystem or registry, in a format that we can use to display the contents of the package and that we can easily compare one against another index.

We call the first package we make the “base image.” The base image is ALL the files and registry keys on the computer once you’ve installed the operating system. If we imagine the computer as a house, the base image is the walls and floors. Now it’s time to start building packages. You’ll start with a base image after you’ve installed the operating system and any other essential programs. Make base image. You can see it on the right. It consists of a file index and a registry index of the computer when you make the image. We can then look through the new index and uncheck files that aren’t important**, which will mean that they don’t get added or deleted when we apply the package. When we save the base image, all the files and registry keys (except the ones we chose to ignore) as well as the indices get saved to the server. The base image shows up as a package in the package view middle pane. We can right click and add a package, or we can simply drag it over.

Okay, so we’ve built a package containing the operating system, but we still need to add all the software that students will want to use. It’s fairly straightforward. First, you install the desired program on the computer. Installing the program will have added (and maybe deleted) some files, and will probably have changed the registry. Now we just select “make package,” and Syncronicity indexes the current state of the computer’s filesystem and registry. It then compares this to the indexes in the base image, and then displays the index with the changes color coded: Files and folders that have been deleted show up as red, and files that have been added show up as green. When we save the package, we don’t save the entire computer, we just save the index of the differences and the associated files. When we talk about comparing two indexes, the default is to consider to nodes the same if their names are the same. However, in Options, you can specify that you want to check for files whose size and date modified have been changed as well.

Then, we simply add the new package to the computer. In practice, computers will have a number of packages, and which packages a computer has will vary depending on need. Continuing our house metaphor, if the base image was the walls and floors, these packages are the furniture. Sometimes the order that you apply packages will matter, for instance when you install Adobe Acrobat Reader it adds files in Microsoft Word’s folders, so you’ll want to apply the Word package before the Acrobat Reader package. You can reorder packages via the right click menu.

Once a computer has at least one package on it, we can display its build in the right pane, which shows an amalgamation of all the computer’s packages.

In most cases, it seems likely that all or most of the computers in a given lab will require the same packages. You’ll notice that each of these labs has a computer called “Default” in it. Default is not a real computer, but if you add a package to Default it gets added to all the computers in the lab. However, let’s say you want to outfit one computer in the lab with special programs for the instructor. All you need to do is add the package to that individual computer, and that computer will no longer follow the Default behavior. There’s even a “Revert to Default” and a “Revert all to Default” if you want to reassert the Default behavior.

When a lab machine restarts, it looks itself up in the network database, finds the packages associated with its individual name, and performs a sync to make itself look like the server tell it it should.

*Packages are not fully implemented. Do not attempt to save or use packages other than base images: your computer will break. Do not put more than one package on a computer and attempt to run a sync: this behavior is untested (insofar as it doesn’t work).

**Ignoring things is very important. You may notice that only HKLM and HKCU are exported from the registry. This is because exporting other things will include things that must be ignored, and will break the computer. You must remember to ignore the Microsoft key inside Software in both of these locations; otherwise your computer will break. Also, don’t expand things, uncheck something down inside the tree, and then collapse the tree: the ignored status of the lower-level node may not be saved.