The Sysadmin IDE

A few weeks ago, I was working with a well known programming Integrated Development Environment (IDE) for Java. I was analysing a plain SQL when I decided to press CTRL over the table name and click on it. I'd never tried this before. Suddenly the right side of the IDE opened up, connected to the database and fetched the table schema. What a wonderful feature!.

And the truth is that the IDE for programming is so useful that programmers don't work without it. It is so much quicker and easier to use.

When you automate systems, you will iterate over three basic steps:

  1. Create new functionality (or fix an existing one)
  2. Test the code
  3. Analyse new problems

The Sysadmin IDE is designed to assist you in those iterations.


Create new functionality (or fix an existing one)

The new functionality is created through the Sysadmin IDE. If you know your Linux distribution well enough, you won't need much training to become proficient in this technology.

This IDE is based in the Package Centric Design Pattern.

The package is the pointer to where the configuration resides. You can customise its files:

  1. Add, modify or delete files and folders
  2. Modify file and folder permissions

If you need to create a very specific behaviour, (like cloning from a it repository or adding a user) you do so through hook scripts, than can be written in any language. These hook scripts can be pre-hooked (executed before the package is installed) or post-hooked, (executed after the package is installed)

Along with these configuration capabilities, you also have access to all the documentation related to the package you are customising.

Test the configuration

You can test the configuration by creating temporary virtual servers with the base operating system in the cloud.

Once the virtual server is created, you can run the configuration.

When you install several packages at once, you can control the order by the dependencies in the hooks. If there are no hooks with dependencies, we assume that the order of installation is unimportant. The different configuration items are installed in this order:

  1. Repository configuration
  2. Pre hooks
  3. Package
  4. Post hooks

Repository configuration, package and hooks will be performed when the conditions are met. For example, if you mark apache2 as 'installed' and it is not in the system, it will be installed automatically.

The hooks runs successfully once per session.  If they fail, they will be executed again the next time you decide to run the configuration.

If the virtual server becomes unusable, or if you want to test the configuration from a new box, you can delete and recreate the server.

If you want to check the stability of the installation, you have the option of clicking "Check stability" under the configuration tab. This will execute the configuration twice and will analyse the returned results. This will detect problems like:

  • A service that is marked as 'started' and dies right after it is initialised
  • A package that is marked as 'installed' but has been removed because of a dependency or in a different stage of installation.

If you need to execute a command fast in the temporary virtual server, you can use the web based terminal1.

The tools tab will give you information about the server:

  • The ports that are opened
  • The processes that are running
  • The credentials of the server. If you want to access the server with your favourite terminal2, you can use those credentials or change the password3 using the web based terminal.

Analyse problems with the changes

When something fails, the log shows you information about the problem. To debug, you can copy and paste the command to the web based terminal (ar any other terminal) or click in the button "Run in terminal"

The configuration will be executed successfully when no errors are show

Would you like to try it out ?

Would you like to try our Sysadmin IDE ? Try our our Interactive Tutorial.


Foot notes:

  1. The web based terminal is meant to the an aid to execute simple commands. If you need to have long sessions or execute complex commands in the graphics, it is recommended that you use your favourite terminal.
  2. By default, some servers like Amazon Linux have several restrictions in the way OpenSSH is configured.
  3. Our system connects via SSH to manage the installation. Those credentials are displayed in the tools tab. If you change those credentials (e.g removing access to certain private key) our system won't be able to access them any more.
Written by Ruben Rubio Rey on Tuesday October 7, 2014
Permalink - Tags: sysadmin, IDE

« Ubuntu Utopic Unicorn 14.10 - Open beta released »