UbuntuServerGuide

Revision 297 as of 2017-03-25 06:47:34

Clear message

Ubuntu Server Guide - Ubuntu 16.04

The guide is published for LTS releases only. Unofficial guides of the current branch will occasionally be made available online. All development and management procedures will remain on the traditional/stable 6-month cycle. Focus/branch of development will change on the prerogative of the committers.

Contributors must use the latest Ubuntu 16.04 release to exercise their additions/fixes to the guide.

If you really want to add something only found in a newer release please go ahead, but make this clear in your merge proposal comments. Your changes will be included in the next LTS release (or in an unofficial snapshot).

The Ubuntu Server Guide project is part of System Documentation and, as such, everything that has been written on that topic applies equally here. Follow the above links to understand the process of contributing to Ubuntu System Documentation.

The purpose of this page is to organize contributions made to the Server Guide for the upcoming Ubuntu release. It is also cool to see what other people are up to. Subscribe to this page!

In addition to this focus wiki page, there is a focus Launchpad team replete with a mailing list. If you are committed to the improvement of the Guide please do become a member of the Ubuntu Server Guide Helpers team!

Here are ways to contribute, in order of priority:

  1. Review on a technical and style level.

  2. Correct (and/or Triage) a filed bug. Ubuntu Server Guide Bugs

  3. Extend by adding a significant amount of new information (possibly new sub-chapter or an entirely new chapter). Let me know of your intentions.

  4. Propose ideas for improvement (new topics, re-organization). There is a Discussion section at the bottom.

Useful links:

Kickstart

Below are sample terminal commands for installing software packages used by the documentation team, downloading and editing the current documentation branch, then pushing your edits to Launchpad.

1. Install the necessary software:

$ sudo apt install bzr docbook docbook-xsl xsltproc libxml2-utils yelp-tools yelp-xsl fop gnome-doc-utils make gettext

If you have not already done so, create your SSH key, set up Launchpad, and configure Bazaar. Follow the instructions in sections 3.1, 4, and 5 here.

Make a directory to store the current documentation branch and change into that directory:

$ mkdir ~/sguide-1604
$ cd ~/sguide-1604

Download the current documentation branch into a directory 'yourbranchname' and change into that directory:

$ bzr branch lp:serverguide yourbranchname 
$ cd yourbranchname

Validate the serverguide.xml file to check for errors:

$ scripts/validate.sh serverguide/C/serverguide.xml

Stop if the file does not validate. Some warnings (e.g. "Column positions are not aligned") may be benign. Bring up any errors in the ubuntu-doc mailing list or try to correct the errors yourself.

To view the available xml files for editing:

$ ls serverguide/C/

2. Review and edit the documentation a little bit at a time. For example, to edit the network-auth.xml file with gedit, run:

$ gedit serverguide/C/network-auth.xml

Users without a GUI will need to use CLI editors like vi or nano for editing.

Save and close the file.

To check your edits, first make the html files from the xml files. This will create the html files in the directory yourbanchname/build/serverguide/C/):

$ make serverguide-html

Then view and verify the changes in your browser:

$ firefox build/serverguide/C/network-authentication.html

Validate the serverguide.xml file to check for any errors:

$ scripts/validate.sh serverguide/C/serverguide.xml

3. Commit your changes and push the branch to your Launchpad account:

$ bzr commit -m 'Your brief review note here.'
$ bzr push lp:~yourlaunchpadid/serverguide/yourbranchname

Variations for the commit lines include specifying the related Launchpad bug report, if one exists:

$ bzr commit --fixes lp:<bug-#> -m 'Your brief review note'

And specifying multiple bug reports, if appropriate:

$ bzr commit --fixes lp:<bug-#> --fixes lp:<bug-#> --fixes lp:<bug-#> -m 'Your brief review note'

Note: For any subsequent pushes, "yourbranchname" needs to be a unique string:

$ bzr push lp:~yourlaunchpadid/serverguide/yoursecondbranchname
$ bzr push lp:~yourlaunchpadid/serverguide/yourthirdbranchname

4. Submit a proposal to merge the modifications with the main branch:

Log in to Launchpad and click "Code". Click the appropriate branch, then click "Propose for merging".

Alternative help method

Although the above is the preferred method for contributing, if you find it too laborious or you just can't make it work an alternative route is to create a bug about what you think is wrong in the guide and include some replacement text. Of course, if you are working already from an existing bug then just add the text in a new bug comment. If you have multiple bugs that affect the same sub-chapter then create a single bug for all of them.

Instructions affected by a software bug

If there is a software bug affecting the instructions you're reviewing you can add an admonishment:

bug_affecting_sg_instructions.png

Below is sample code to achieve the above. Replace BUG_URL and BUG_NUMBER with the appropriate values:

<caution>
   <para>
   This section is plagued by a bug (<ulink url="BUG_URL">LP #BUG_NUMBER</ulink>) and instructions may not work as intended.
   </para>
</caution>

Then add a note in the comment section in the below table: Affected by LP #BUG_NUMBER - Update required once bug is fixed.

Contribution table

Priorities

Medium priority

High priority

Critical priority (will be removed this cycle unless reviewed)

Using the following symbols...

(o)

TO DO

(./)

IN PROGRESS

Warning /!\

MERGE PROPOSED

(OK)

MERGE ACCEPTED, I'M DONE!

Sad <:(

MERGE REJECTED

Awesome! B)

NOTHING TO DO, IT'S GOOD AS IS

(i)

COMMENT

...let us know what you want to do, where you're at, and any comments you may have. While In Progress, update the % Complete column regularly.

Sub-chapter

Your name

Your Launchpad ID

Review

Extension

Comments

% Complete

1 - Introduction

1.1 -- Support

(o)

2 - Installation

2.1 -- Preparing to Install

(o)

2.2 -- Installing from CD

(o)

2.3 -- Upgrading

(o)

2.4 -- Advanced Installation

(o)

2.5 -- Kernel Crash Dumps

(o)

3 - Package Management

3.1 -- Introduction

(o)

3.2 -- dpkg

(o)

3.3 -- Apt-Get

(o)

3.4 -- Aptitude

(o)

3.5 -- Automatic Updates

(o)

3.6 -- Configuration

(o)

3.7 -- References

(o)

4 - Networking

4.1 -- Network Configuration

(o)

4.2 -- TCP/IP

(o)

4.3 -- Dynamic Host Configuration Protocol (DHCP)

(o)

4.4 -- Time Synchronisation with NTP

(o)

4.5 -- Data Plane Development Kit

Christian Ehrhardt

(OK)

Significant Revision

MP 292803

5 - Storage - THIS IS THE INTENDED STRUCTURE - NEEDS DOING

5.1 -- LVM

(o)

5.2 -- Software RAID (md)

(o)

5.3 -- DM Multipath

(o)

5.4 -- Ceph

(o)

6 - Remote Administration

6.1 -- OpenSSH Server

(o)

6.2 -- Puppet

(o)

6.3 -- Zentyal

Ted Cox

(OK)

7 - Network Authentication

7.1 -- OpenLDAP Server

(o)

7.2 -- Samba and LDAP

Nish Aravamudan

nacc

Warning /!\

7.3 -- Kerberos

(o)

7.4 -- Kerberos and LDAP

(o)

7.5 -- SSSD and Active Directory

Mark Thomas

markthomas

(OK)

8 - Domain Name Service (DNS)

8.1 -- Installation

(o)

8.2 -- Configuration

(o)

8.3 -- Troubleshooting

(o)

8.4 -- References

(o)

9 - Security

9.1 -- User Management

(o)

9.2 -- Console Security

Ted Cox

(OK)

9.3 -- Firewall

(o)

9.4 -- AppArmor

(o)

Test to confirm bug warning can be removed; LP 1304134 is fixed

9.5 -- Certificates

(o)

9.6 -- eCryptfs

(o)

10 - Monitoring

10.1 -- Overview

(o)

10.2 -- Nagios

(o)

10.3 -- Munin

(o)

11 - Web Servers

11.1 -- HTTPD - Apache2 Web Server

(o)

11.2 -- PHP5 - Scripting Language

Nish Aravamudan

nacc

(OK)

11.3 -- Squid - Proxy Server

(o)

11.4 -- Ruby on Rails

(o)

11.5 -- Apache Tomcat

(o)

12 - Databases

12.1 -- MySQL

(o)

12.2 -- PostgreSQL

(o)

13 - LAMP Applications

13.1 -- Overview

(o)

13.2 -- Moin Moin

(o)

13.3 -- MediaWiki

Doug Smythies

dsmythies

(./)

Delete. LP 1598717

13.4 -- phpMyAdmin

(o)

13.5 -- WordPress

(o)

14 - File Servers

14.1 -- FTP Server

(o)

14.2 -- Network File System (NFS)

(o)

14.3 -- iSCSI Initiator

(o)

14.4 -- CUPS - Print Server

(o)

15 - Email Services

15.1 -- Postfix

(o)

15.2 -- Exim4

(o)

15.3 -- Dovecot Server

(o)

15.4 -- Mailman

(o)

15.5 -- Mail Filtering

(o)

16 - Chat Applications

16.1 -- Overview

(o)

16.2 -- IRC Server

(o)

16.3 -- Jabber Instant Messaging Server

(o)

17 - Version Control Systems

17.1 -- Bazaar

(o)

17.2 -- Git

(o)

17.3 -- Subversion

(o)

17.4 -- References

Ian Nicholson

imnichol

(OK)

100%

18 - Samba

18.1 -- Introduction

Nish Aravamudan

nacc

Warning /!\

18.2 -- File Server

Nish Aravamudan

nacc

Warning /!\

18.3 -- Print Server

Nish Aravamudan

nacc

Warning /!\

18.4 -- Securing File and Print Server

Nish Aravamudan

nacc

Warning /!\

18.5 -- As a Domain Controller

Nish Aravamudan

nacc

Warning /!\

18.6 -- Active Directory Integration

Nish Aravamudan

nacc

Warning /!\

19 - Backups

19.1 -- Shell Scripts

(o)

19.2 -- Archive Rotation

(o)

19.3 -- Bacula

(o)

20 - Virtualization

20.1 -- libvirt

(o)

20.2 -- Cloud Images and uvtool

(o)

20.4 -- LXD

Serge Hallyn

serge-hallyn

(OK)

NEW

Markdown version

MP 290540

20.5 -- LXC

(o)

21 - Control Groups

21.1 -- Overview

(o)

21.2 -- Filesystem

(o)

21.3 -- Delegation

(o)

21.4 -- Manager

(o)

21.5 -- Resources

(o)

22 - Clustering

22.1 -- DRBD

(o)

23 - VPN

23.1 -- OpenVPN

(o)

24 - Other Useful Applications

24.1 -- pam_motd

(o)

24.2 -- etckeeper

Peter Matulis

petermatulis

(OK)

MP 243748

24.3 -- Byobu

Peter Matulis

petermatulis

24.4 -- References

Peter Matulis

petermatulis

(OK)

MP 243749

A - Appendix

A.1 -- Reporting Bugs in Ubuntu Server Edition

Peter Matulis

petermatulis

(OK)

MP 227398

Getting help

Here are the best ways to get answers to any questions you may have:

Deadline

No new deadline exists, please check this page periodically for updates. See DocumentationStringFreeze and TrustyTahrReleaseSchedule.

Discussion

Here you can add your thoughts on

  • Re-organization of topics
  • Addition of missing topics
    • Samba chapter needs to be re-written for Samba4
    • Upstart missing
    • Ceph missing
  • Anything else

Notes:

  • sub-section 3.1.4 is about named-checkzone. There should also be a 3.1.5 about named-checkconf.
  • The contribution table can be replaced with a link to another page containing all the information. This would avoid the user having to scroll down a lot in order to reach the next topic.