UbuntuServerTasks

Summary

Define and implement more common installation targets for the server CD.

Rationale

The LAMP install in Dapper was well-received, and (in the associated press release) we have committed to provide more "simple server setup" targets for people who want to hit the ground running more easily with ubuntu-server.

Adding 10 new boot options to the CD sounds like a Very Bad Idea (boot options are UI-limited, and for instance you can only select one, not combine them). This specification therefore depends on ReviveTasksel to provide us with a task selection UI in the installer.

Survey of existing Debian tasks (apart from language and "special" tasks, Debian task policy is generally that each task should correspond to a specific thing a user wants to do):

  • lots of language tasks (not required in Ubuntu due to language packs)
  • database server
  • desktop
  • DNS server
  • file server
  • laptop
  • mail server
  • manual (runs aptitude, probably doesn't actually work at the moment)
  • print server
  • standard (i.e. priority)
  • web server
  • vm server (edition ready to install Virtual Box 1.5)

Use cases

  • Bob is an inexperienced user who isn't comfortable with Debian package management, and would prefer to simply select the kind of server he wishes to install in some kind of a graphical interface.
  • Charlie needs a throwaway wiki server set up immediately for a conference at his workplace. He's unfamiliar with wiki software, and wants to use whatever software is a common, supported choice.
  • Bill, an ex-Windows system administrator, is used to the add/remove software and mmc features in Windows. He would prefer to continue to administer his Linux servers similarly.

Scope

Selection of server tasks; possible promotions to main for some of the software listed below. (Reviving tasksel and integrating it with d-i is in scope for ReviveTasksel, but not here.)

Design

If necessary, the ubuntu-server CD will tell tasksel to present all available tasks rather than just installing its default. See ReviveTasksel.

Each task will be implemented as a seed; the server seed (possibly to be renamed to server-ship) will inherit from all task seeds that are to go on the CD. (At present, this needs minor tweaks to cdimage to ensure that the task seeds all end up on the CD.) Per ReviveTasksel, each server task will be presented using Task fields in the archive, and will not be derivative-specific.

The following is a list of suggested tasks, together with some packages that have been suggested for each. This specification does not attempt to lay down precisely which packages will be selected for each task; the implementor should select these based on which packages can best be supported by Ubuntu, which provide the best out-of-the-box experience, and so on. In general (and there will doubtless be the occasional exception) we should avoid offering a superfluity of alternatives in the task selector, and err more on the side of providing best-of-breed recommendations; more advanced users with set ideas of exactly what they want should be quite happy to use a full-scale package manager.

  • DNS server
    • bind9
  • File server
    • SMB: samba, smbclient, swat
    • FTP: vsftpd
    • NFS: nfs-kernel-server
  • Print server
    • cupsys plus drivers (foomatic-* and so on)
  • Web server
    • apache2
    • lighttpd
      • to have no promotion: use metapackage httpd
  • LAMP server
    • Database choices: mysql, postgres
    • Language choices: libapache2-mod-php5, libapache2-mod-python, libapache2-mod-perl2
  • Content management system
    • Zope/Plone, Drupal (both in universe, non-options without promotion)
  • VM server
    • VirtualBox 1.5, network bridge tools, network bridge scripts

  • Plain mail server
    • IMAP(S) choices: dovecot-imapd, courier-imap(-ssl)
    • POP3(S) choices: dovecot-pop3d, courier-pop(-ssl)
    • SMTP(TLS) choices: postfix, exim
    • Webmail choices: sqwebmail, squirrelmail, roundcubemail (all in universe, non-options without promotion)
    • Mailing list server: mailman
    • Anti-spam systems: bogofilter (main), universe options: spamassassin, razor, dspam
  • Mail server with all the bells and whistles (virtual hosting, etc.)
    • Alternatives: the full courier suite, or a postfix/dovecot solution
  • Issue tracking / customer relationship management
    • Nothing in main, universe options: Trac, request-tracker (RT), bugzilla, mantis
  • Groupware
    • egroupware, phpgroupware, (the two most known ones) Horde (the most complete and mature one), Zimbra (only in partner repo but the possibility is very advertised from Canonical these days)
      • this category was forgotten here, altough it is one of the most use cases of a real dedicated server - on managed ones nobody really have the opportunity to install Ubuntu-Server - if you only want a possibility to have a little webserver you use cheaper ones, if you plan something big like webserver, mailserver, groupware web interface and connection/synching to the local clients, you have a groupware. So: Dont fort get the groupwares..

  • Authentication server
    • slapd
    • almost no Kerberos servers live in main, and a complicated task like Kerberos is probably not a good use of tasksel, as it requires relatively extensive manual configuration later
  • Forums software server
    • Only if we can find some forum software with an excellent security track record. The most commonly used systems have *exceedingly* poor security histories.
      • Take the python based forum software "pocoo" in your repo's if it reaches 1.x Status! Its secure at least of the reason it is no PHP but Python!
  • Monitoring software
    • nagios; universe choices: cacti, mrtg
  • Wiki software
    • python-moinmoin plus mod_python; universe choice: mediawiki
  • Blog software
    • nothing in main, universe choices: wordpress, pyblosxom
  • Versioning/repository software
    • main: bzr, cvs, subversion
    • universe: bzr-svn, libapache-mod-dav (perhaps only bzr, and support cvs/svn through interop features?)

It is possible that Canonical may be developing partnerships with various proprietary/commercial software vendors to support their software on Ubuntu and provide packages. Naturally these could not go on the server CD, but, since server admins will often not have convenient access to gnome-app-install etc., it may make sense to provide Task fields for these in the commercial repository. If database servers are among those packaged, then the following PHP extensions should be packaged and set up to enable development out of the box:


Comments

UbuntuDemon : There is a really interesting and relevant thread going on in the Edgy Development section at www.ubuntuforums.org :

It's time to bring Ubuntu to the enterprise http://www.ubuntuforums.org/showthread.php?t=191858

JeffSchroeder : Speaking of excellent forum software, punbb is MUCH faster than vbulletin or phpbb and has a very good security record. According to Secunia, punbb has been affected by 10 vulnerabilities since 2003 whereas phpbb has been affected by 35

http://secunia.com/product/3700/ punbb

http://secunia.com/product/463/ phpbb

A good demo of punbb is at http://www.compiz.net

NicolasKassis : Should there be a sort of UbuntuDirectory similar to ActiveDirectory that controls all of these services ?

PaulKishimoto : The thread UbuntuDemon linked derails repeatedly into individuals pumping their modified-for-debian/ubuntu install instructions for third-party software that's not even in universe -( That seems Un-Ubuntu, whereas this spec is exciting! If implemented properly, it would be nearly trivial to replace web-based control panels such as cPanel, Plesk, etc. with a small amount of PHP--the script would simply interface with tasksel or the known ubuntu- or debian-default configuration files for each package. Some other candidates (sadly all universe packages):

  • Web server: tomcat5? I'm not big on Java, but many are.
  • Webmail choices: horde3 (Would need packages like horde3-imp, etc.), hula
  • Forums software: perhaps just use an install profile for Drupal or another CMS that provides integrated forums, to avoid multiple login?

I notice the suggested tasks aren't mutually exclusive. For example, if the user selects a CMS/forum/wiki server, or a mail server providing webmail, then isn't a "LAMP" stack implied? What if the user wants to run these applications on a "LAPP" (postgres) stack, since postgres is suggested as an option?

For stable LAMP apps, should PHP tuning be introduced by default? There are some very good caches (http://pecl.php.net/packages.php?catpid=3&catname=Caching) available. How about SQL replication? In general, a user should be able to extend or modify the initial task configuration without breaking uninstallation. The a2enmod/a2ensite commands come to mind...

Again, an exciting spec!

KristofferLundén: Another interesting task could be to provide a Ruby on Rails-server. Given how many tutorials and comments there are about setting that up, it'd probably be a popular one. I think OS/X provides it OOTB now, too. I don't know the status of all these packages, but if possible: Task should provide apache2 (and/or lighthttpd?) with fastCGI support, ruby and rails itself of course, mysql/postgresql/sqlite as database choices and whatever other common and appropriate stuff is stable and available, like mongrel, irb, gems maybe and so on.

JohnMoser: We need a directory server. A working Linux-based Active Directory service that can authenticate Windows XP Professional (and eventually Vista) machines would be awesome. Integrating this with LDAP or straight A/D authentication from Ubuntu Desktop would improve our position in the server market greatly. SAMBA and samba-tng should provide a Domain Controller these days....

  • JohnMoser: SAMBA 4 will support being a full Active Directory domain controller! Smile :) It's a technology preview right now, not suitable for production use.

HenrikWidth suggests an "imaging server" based on Clonezilla

RossPeoples: This spec is a great idea and I've been looking forward to this one for a while...especially the XP-compatible directory server part. But the one thing I would like to see in this spec is not only a UI for these tasks on install, but a simple, and straight-forward way of getting to the UI later on in case I decide to change or add something after the install.

  • ColinWatson: In order for this spec to actually happen, it needs to be focused and to the point; further work should be split off into other specs or bug reports. (Note that sudo tasksel exists, though ...)

  • PaulKishimoto: Some of the interface work seems to be going on in UbuntuEasyBusinessServer, which is a 2007 GSoC project. The assignee seems to feel this spec (installing packages) is disjoint from the web interface (configuring installed packages). AdministerServerViaWebInterface is also relevant but it doesn't seem anyone's working on it.

    • ColinWatson: Let me clarify that this spec is supposed to be about selecting which packages to group together into server tasks, not about the implementation.

  • RickClark: This seems to be focused almost solely on server applications, but I think we are missing part of the picture. For example, most enterprises have a small number of AD controllers, .1% or less, in relation to Servers that are AD clients. If we want to tackle bug #1, we need to ensure that Ubuntu server can drop into an existing windows environment. I think replacing an IIS server with drop in LAMP replacement is a much more likely use case, than replacing AD.

    • MattZimmerman: This specification is about convenient selection of packages during installation; it is not meant to cover integration with Windows. Note that everything in this section is merely comments from visitors to the wiki, while only the top portion is the specification itself.

Jkorz: Just a thought. Since it may be tough to cram all this into one cd and release it by october, it seems to me like a good idea would be to have a xen server option that works on the principle of VMware ESX. If this included a nice utility to package xen VM's and a slick way within the install to download the needed VM's, the devs could focus on getting a couple key things working on the server release and the community can make vm's to do active directory, email servers, ruby on rails, etc... the way that vmware's virtual appliances work. If there was some sort of utility to set the IP, uname/pwd and such on vm download (rather than going into it manually afterward and risk newbies leaving on the defaults), this model would be a force to reckon with.

JohnMoser: These days, internal communication and conferencing have become paramount. A Jabber/XMPP or SILC server to supply Instant Messaging would appeal to businesses as a way to keep employees between data centers or away from the office in touch. In this we also need to consider future expansion to allow point-and-click instant voice or video chat (conference calls and video conferencing) using Pidgin when the pidgin-vv work gets merged; the ability to instantly voice-discuss over a 3kb/s Speex stream or video present a discussion with white board aid from remote locations at 1024x768 Theora/Speex over a gigabit link with logging on the central server would appeal to distributed development teams and other groups of people working together remotely. Relevant bugs: Malone 16802, SILC server needed (silc may not be the best server for this)

AndrewFuchs: For wiki software, you might want to look at dokuwiki, which is included in the universe repositories.

JulienMary2: Until now Ubuntu Server has been like Ubuntu Desktop less the Desktop, plus a LAMP platform. This is quite Web Developer oriented. What an SME needs ? It can be backup, it can be mail only, or ftp only, or domain controller, or LTSP, or a router/firewall with proxy service. The end user can also be an ISP who want to offer a control panel to its users which are hosted as virtual domains. To have a list of such profiles, then figure out what can be implemented or which tools are necessary to create, seems to be the first two necessary steps.


CategorySpec

UbuntuServerTasks (last edited 2008-08-19 19:37:28 by dslb-092-074-180-239)