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:

Review on a technical and style level. Correct (and/or Triage) a filed bug. Ubuntu Server Guide Bugs Extend by adding a significant amount of new information (possibly new sub-chapter or an entirely new chapter). Let me know of your intentions. Propose ideas for improvement (new topics, re-organization). There is a Discussion section at the bottom.

Useful links:

Current release guide: Ubuntu Server Guide - lts

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:





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...

TO DO IN PROGRESS MERGE PROPOSED MERGE ACCEPTED, I'M DONE! MERGE REJECTED NOTHING TO DO, IT'S GOOD AS IS 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 2 - Installation 2.1 -- Preparing to Install 2.2 -- Installing from CD 2.3 -- Upgrading 2.4 -- Advanced Installation 2.5 -- Kernel Crash Dumps 3 - Package Management 3.1 -- Introduction 3.2 -- dpkg 3.3 -- Apt-Get 3.4 -- Aptitude 3.5 -- Automatic Updates 3.6 -- Configuration 3.7 -- References 4 - Networking 4.1 -- Network Configuration 4.2 -- TCP/IP 4.3 -- Dynamic Host Configuration Protocol (DHCP) 4.4 -- Time Synchronisation with NTP 4.5 -- Data Plane Development Kit Christian Ehrhardt Significant Revision MP 292803 5 - Storage - THIS IS THE INTENDED STRUCTURE - NEEDS DOING 5.1 -- LVM 5.2 -- Software RAID (md) 5.3 -- DM Multipath 5.4 -- Ceph 6 - Remote Administration 6.1 -- OpenSSH Server 6.2 -- Puppet 6.3 -- Zentyal Ted Cox 7 - Network Authentication 7.1 -- OpenLDAP Server 7.2 -- Samba and LDAP Nish Aravamudan nacc 7.3 -- Kerberos 7.4 -- Kerberos and LDAP 7.5 -- SSSD and Active Directory Mark Thomas markthomas 8 - Domain Name Service (DNS) 8.1 -- Installation 8.2 -- Configuration 8.3 -- Troubleshooting 8.4 -- References 9 - Security 9.1 -- User Management 9.2 -- Console Security Ted Cox 9.3 -- Firewall 9.4 -- AppArmor Test to confirm bug warning can be removed; LP 1304134 is fixed 9.5 -- Certificates 9.6 -- eCryptfs 10 - Monitoring 10.1 -- Overview 10.2 -- Nagios 10.3 -- Munin 11 - Web Servers 11.1 -- HTTPD - Apache2 Web Server 11.2 -- PHP5 - Scripting Language Nish Aravamudan nacc 11.3 -- Squid - Proxy Server 11.4 -- Ruby on Rails 11.5 -- Apache Tomcat 12 - Databases 12.1 -- MySQL 12.2 -- PostgreSQL 13 - LAMP Applications 13.1 -- Overview 13.2 -- Moin Moin 13.3 -- MediaWiki Doug Smythies dsmythies Delete. LP 1598717 13.4 -- phpMyAdmin 13.5 -- WordPress 14 - File Servers 14.1 -- FTP Server 14.2 -- Network File System (NFS) 14.3 -- iSCSI Initiator 14.4 -- CUPS - Print Server 15 - Email Services 15.1 -- Postfix 15.2 -- Exim4 15.3 -- Dovecot Server 15.4 -- Mailman 15.5 -- Mail Filtering 16 - Chat Applications 16.1 -- Overview 16.2 -- IRC Server 16.3 -- Jabber Instant Messaging Server 17 - Version Control Systems 17.1 -- Bazaar 17.2 -- Git 17.3 -- Subversion 17.4 -- References Ian Nicholson imnichol 100% 18 - Samba 18.1 -- Introduction Nish Aravamudan nacc 18.2 -- File Server Nish Aravamudan nacc 18.3 -- Print Server Nish Aravamudan nacc 18.4 -- Securing File and Print Server Nish Aravamudan nacc 18.5 -- As a Domain Controller Nish Aravamudan nacc 18.6 -- Active Directory Integration Nish Aravamudan nacc 19 - Backups 19.1 -- Shell Scripts 19.2 -- Archive Rotation 19.3 -- Bacula 20 - Virtualization 20.1 -- libvirt 20.2 -- Cloud Images and uvtool 20.4 -- LXD Serge Hallyn serge-hallyn NEW Markdown version MP 290540 20.5 -- LXC 21 - Control Groups 21.1 -- Overview 21.2 -- Filesystem 21.3 -- Delegation 21.4 -- Manager 21.5 -- Resources 22 - Clustering 22.1 -- DRBD 23 - VPN 23.1 -- OpenVPN 24 - Other Useful Applications 24.1 -- pam_motd 24.2 -- etckeeper Peter Matulis petermatulis MP 243748 24.3 -- Byobu Peter Matulis petermatulis 24.4 -- References Peter Matulis petermatulis MP 243749 A - Appendix A.1 -- Reporting Bugs in Ubuntu Server Edition Peter Matulis petermatulis 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: