ENGLISH

Mastering Ubuntu Server: Master the art of deploying, configuring, managing, and troubleshooting Ubuntu Server 18.04, 2nd Edition

Book information

Publisher
Packt Publishing
Year
2018
ISBN
1788997565, 9781788997560
Language
english
Format
PDF
Filesize
13 MB (13139521 bytes)
Edition
2nd Revised edition
Pages
552\540
Time added
2020-07-11 11:53:31

Description

Get up-to-date with the more complex aspects of Ubuntu Server using this comprehensive guide Key FeaturesUnderstand how to deploy, maintain and troubleshoot Ubuntu ServerGet well-versed with the newly-added features in Ubuntu 18.04Learn to manage cutting-edge technologies such as virtualization, containers, and Nextcloud Book Description Ubuntu Server has taken data centers by storm with its impressive features, fast deployment, and flexible configuration. Whether you're deploying Ubuntu for a large-scale project or a small office, it is a stable, customizable, and powerful Linux distribution that leads the way with innovative capabilities. Moreover, for both simple and complex server deployments, you'll be able to leverage Ubuntu's flexible nature to meet the needs of your organization. With this book, you'll learn all about Ubuntu Server, from initial deployment to creating production-ready resources for your network. You'll start with concepts such as user management, group management, and filesystem permissions. Next, you'll understand how to manage storage volumes, which will help you learn how to format storage devices, use logical volume management, and monitor disk usage. Later, you'll get up to speed with virtualizing hosts and apps. This section will give you insights into setting up KVM and QEMU, and containerization with both Docker and LXD. As you progress, you'll explore how to automate configuration with Ansible, and take a look at writing scripts. Lastly, you will explore best practices and troubleshooting techniques when working with Ubuntu Server that are applicable to real-world scenarios. By the end of this book, you'll have the expertise you need as an Ubuntu Server administrator and be well-versed with its advanced concepts. What you will learnManage users, groups, and permissionsEncrypt and decrypt disks with Linux Unified Key Setup (LUKS)Set up Secure Shell (SSH) for remote access, and connect it to other nodesAdd, remove, and search for packagesUse Network File System (NFS) and Samba to share directories with other usersDiscover techniques for managing Apache and MariaDBGet familiar with scriptingAutomate server deployments with AnsibleWho This Book Is For This book is for readers with intermediate or advanced-beginner skills in Linux who want to learn all about setting up servers with Ubuntu Server. Basic knowledge of Linux, such as editing configuration files and running basic commands is assumed. Table of ContentsDeploying Ubuntu ServerManaging usersManaging Storage VolumesConnecting to NetworksManaging Software PackagesControlling and monitoring processesSetting Up Network ServicesSharing and Transferring FilesManaging DatabasesServing Web ContentLearning Advanced Shell TechniquesVirtualizationRunning ContainersAutomating Server Configuration with AnsibleSecuring your ServerTroubleshooting Ubuntu ServersPreventing and recovering from disastersAppendixAssessments Cover Title Page Copyright and Credits Dedication Packt Upsell Contributors Table of Contents Preface Chapter 1: Deploying Ubuntu Server Technical requirements Setting up our lab Determining your server's role Deciding between 32- and 64-bit installations Obtaining Ubuntu Server installation media Creating a bootable Ubuntu Server flash drive Planning the partitioning layout Installing Ubuntu Server Installing Ubuntu Server on Raspberry Pi 3 Summary Questions Further reading Chapter 2: Managing Users Understanding when to use root Creating and removing users Understanding the /etc/passwd and /etc/shadow files Distributing default configuration files with /etc/skel Switching users Managing groups Managing passwords and password policies Configuring administrator access with sudo Setting permissions on files and directories Summary Questions Further reading Chapter 3: Managing Storage Volumes Understanding the Linux filesystem Using symbolic and hard links Viewing disk usage Adding additional storage volumes Partitioning and formatting volumes Mounting and unmounting volumes Understanding the /etc/fstab file Managing swap Utilizing LVM volumes Understanding RAID Summary Questions Further reading Chapter 4: Connecting to Networks Setting the hostname Managing network interfaces Assigning static IP addresses Understanding NetworkManager Understanding Linux name resolution Getting started with OpenSSH Getting started with SSH key management Simplifying SSH connections with a config file Summary Questions Further reading Chapter 5: Managing Software Packages Understanding Linux package management Taking advantage of hardware enablement updates Understanding the differences between Debian and Snap packages Installing and removing software Searching for packages Managing package repositories Backing up and restoring Debian packages Cleaning up orphaned apt packages Making use of Aptitude Summary Questions Chapter 6: Controlling and Monitoring Processes Showing running processes with the ps command Managing jobs Dealing with misbehaving processes Utilizing htop Managing system processes Monitoring memory usage Scheduling tasks with cron Understanding load average Summary Questions Further reading Chapter 7: Setting Up Network Services Planning your IP address scheme Serving IP addresses with isc-dhcp-server Setting up DNS with bind Creating a secondary (slave) DNS server Setting up an internet gateway Keeping your clock in sync with NTP Summary Questions Further reading Chapter 8: Sharing and Transferring Files File server considerations Sharing files with Windows users via Samba Setting up NFS shares Transferring files with rsync Transferring files with scp Mounting remote directories with SSHFS Summary Questions Further reading Chapter 9: Managing Databases Preparations for setting up a database server Installing MariaDB Understanding the MariaDB configuration files Managing MariaDB databases Setting up a slave database server Summary Questions Chapter 10: Serving Web Content Installing and configuring Apache Installing additional Apache modules Securing Apache with SSL Installing and configuring NGINX Setting up failover with keepalived Setting up and configuring Nextcloud Summary Questions Further reading Chapter 11: Learning Advanced Shell Techniques Understanding the Linux shell Understanding Bash history Learning some useful command-line tricks Redirecting output Understanding variables Writing simple scripts Putting it all together: Writing an rsync backup script Summary Questions Further reading Chapter 12: Virtualization Setting up a virtual machine server Creating virtual machines Bridging the virtual machine network Simplifying virtual machine creation with cloning Managing virtual machines via the command line Summary Questions Further reading Chapter 13: Running Containers What is containerization? Understanding the differences between Docker and LXD Installing Docker Managing Docker containers Automating Docker image creation with Dockerfiles Managing LXD containers Summary Questions Further reading Chapter 14: Automating Server Configuration with Ansible Understanding the need for configuration management Why Ansible? Creating a Git repository Getting started with Ansible Making your servers do your bidding Putting it all together – Automating web server deployment Using Ansible's pull method Summary Questions Further reading Chapter 15: Securing Your Server Lowering your attack surface Understanding and responding to CVEs Installing security updates Automatically installing patches with the Canonical Livepatch service Monitoring Ubuntu servers with Canonical's Landscape service Securing OpenSSH Installing and configuring Fail2ban MariaDB best practices for secure database servers Setting up a firewall Encrypting and decrypting disks with LUKS Locking down sudo Summary Questions Further reading Chapter 16: Troubleshooting Ubuntu Servers Evaluating the problem space Conducting a root cause analysis Viewing system logs Tracing network issues Troubleshooting resource issues Diagnosing defective RAM Summary Questions Chapter 17: Preventing and Recovering from Disasters Preventing disasters Utilizing Git for configuration management Implementing a backup plan Replacing failed RAID disks Utilizing bootable recovery media Summary Questions Further Reading Appendix A: Using the Alternate Installer Obtaining the Alternate Installer Installing via the Alternate Installer Setting up software RAID Summary Appendix B: Assessments Chapter 1 – Deploying Ubuntu Server Chapter 2 – Managing Users Chapter 3 – Managing Storage Volumes Chapter 4 – Connecting to Networks Chapter 5 – Managing Software Packages Chapter 6 – Controlling and Monitoring Processes Chapter 7 – Setting Up Network Services Chapter 8 - Accessing and sharing files Chapter 9 - Sharing and Transferring Files Chapter 10 – Serving Web Content Chapter 11 – Learning Advanced Shell Techniques Chapter 12 – Virtualization Chapter 13 – Running Containers Chapter 14 – Automating Server Configuration with Ansible Chapter 15 – Securing Your Server Chapter 16 – Troubleshooting Ubuntu Servers Chapter 17 – Preventing and Recovering from Disasters Other Books You May Enjoy Index

Similar books