UbuntuInstantServerSpec

Summary

Provide a high level (shell) interface tool that allows new users (and administrators short on time) to very quickly and easily set up servers built on Ubuntu Server that run specific common services or sets of services such as a Web Server, or Groupware Server or Database Server without requiring any special prior knowledge about what packages are required to provide said services.

Rationale

Get people up and running Ubuntu Server with the services they require easier and faster than any other platform. Provide additional proof of Ubuntu's flexibility and ease of use. Make it extremly easy for people, especially novices, to use any service they need without having to be an expert administrator.

Use Cases

  • Galvin Bros Inc, has a new software project they are working on. They buy a new machine to act as their source code repository. They are not apache/subversion/trac admins and have never setup a source code repository before. They research their options and find the Ubuntu Instant Source Control Server. They install Ubuntu Server, choose Easy Instant Source Control. All the software they need (apache, subversion|bazaar, trac, etc...) is installed and ready to use.
  • Jimmy Wannabe Admin is learning how to be an admin. He wants to set up his own web server with apache, php, python, perl, and some other stuff but is not totally sure how. He installs Ubuntu Server, selects Advanced Instant Web Server, selects the options he wants (apache, php, python, perl, wordpress and mysql) and everything gets installed for him. He is now set up with what he wants and is free to play and learn while still being able to further customize his server when he learns how.

Scope

Ubuntu Instant Server is meant for Ubuntu Server but will be usable anywhere as it will rely only on packages in main. We will be creating at least one new package called "ubuntu-instant-server" or something similar. We may also create additional packages or scripts the either contain our default config files or can modify the existing configs to use our new configs that work in more "real-world" situations.

Design Goals

  • provide a simple and fast way for anyone to get a server up and running in a pinch
  • provide a way for novices to get accustomed to the basics of operating a server by making the visible options more relevant (manual editing of config files still an option)
  • provide a way to quickly replicate a server setup on multiple machines, including LiveCD servers

XXX: Please coordinate with d-i people. Specially Ubuntu Express and d-i preseeding. These stuff already exist to a certain degree. No need to reinvent the wheel.

  • do so in a user friendly and un-encumbered interface (at the shell level)
  • select sane defaults which can be used out-of-the-box in a mojority of operating environments

XXX: consider doing so providing patches to maintainer.

  • select best-security options whenever possible (SSH over telnet, etc.)

XXX: most of this is already done by Ubuntu.

  • do so within the confines of the existing Ubuntu package structures (eg: apt repositories, installation program, available packages in main)

Implementation

Create application (possibly python script(s)) called Ubuntu Instant Server Manager to allow for the installation and removal of easy install servers and advanced install servers. ubuntu-ism will also allow users to turn servers/services on/off.

XXX: decide a name and stick with it. Also the language is important. Check what you have immediatly after a base install and make it so that instant-server-whatevername can work from there.

Create sane default config files for each server. Many that exist now are fine but some require additional tweaking.

XXX: as above.. patches to the maintainers.

Make sure the installed services are not only installed but also configured for real world use.

The [Save Instant Server Profile to Disk] is specifically for LiveCD's -- a profile of all the options set would be stored in a nice container file specifically to help out the LiveCD people. If, for example, the File could be specified as ftp:// etc. (which is super easy to do in Python, for example), and could make for super fast server-cluster setups.

XXX: same notes as above.

When one selects 'Activate Instant Server', apt-get is triggered to install the appropriate sub-packages, and the Instant Server Manager installs/overrides the default config files of the packages where necessary.

Proposed package layout procedure

  • instant-server-manager (deb package) called by installation program, available in apt for the other Ubuntu flavours if they want to use it...
  • instant-server-config-http (package or script) depends on regular ubuntu packages for apache &c. from main, and includes the config files required for using Apache through the Instant Server Manager config interface

  • instant-server-config-ssh (package or script) ditto as above
  • -ftp (package or script) ditto as above (with selected default FTP package)
  • -mail (package or script) ditto as above (with postfix as default?)

Outstanding Issues

None at this time.

BoF agenda and discussion

Comments

Please feel free to discuss this spec on the Ubuntu -devel mailing list or at /talk


CategorySpec

UbuntuInstantServerSpec (last edited 2008-08-06 16:26:36 by localhost)