UbuntuServerTasks

Differences between revisions 24 and 25
Revision 24 as of 2007-06-11 13:24:35
Size: 10527
Editor: 209
Comment:
Revision 25 as of 2007-06-11 13:40:07
Size: 10693
Editor: chiark
Comment:
Deletions are marked like this. Additions are marked like this.
Line 139: Line 139:
  * 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.

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

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
  • LAMP server
    • Database choices: mysql, postgres
    • Language choices: libapache2-mod-php5, libapache2-mod-python, libapache2-mod-perl2
  • Content management system
    • Choices: Zope/Plone, Drupal (both in universe, non-options without promotion)
  • 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), egroupware, phpgroupware, bugzilla, mantis
  • 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.
  • 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.


CategorySpec

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