Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
Who this book is for What this book covers To get the most out of this book Get in touch
Deploying Ubuntu Server
Technical requirements Determining your server's role Setting up our server
Virtual machine Physical server Virtual private server Spare desktop or laptop Raspberry Pi
Obtaining installation media Creating a bootable flash drive
Planning the partitioning layout
Installing Ubuntu Server
Installing media Customizing the installation Configuring the server's disk Creating the initial user account
Installing Ubuntu on a Raspberry Pi Summary Further Reading
Managing Users and Permissions
Understanding users and groups Understanding when to use root
Using sudo to run privileged commands
Creating and removing users
Using useradd Using adduser Removing users
Understanding the /etc/passwd and /etc/shadow files
Using /etc/passwd Using /etc/shadow
Distributing default configuration files with /etc/skel Switching users Managing groups Managing passwords and password policies
Locking and unlocking user accounts Setting password expiration information Setting a password policy
Configuring administrator access with sudo Setting permissions on files and directories
Viewing permissions Changing permissions Changing the ownership of objects
Summary Further reading
Managing Software Packages
Understanding Linux package management Understanding the differences between Debian and Snap packages
Debian packages Snap packages
Installing and removing software
Managing Debian packages with apt Managing Snap packages with snap
Searching for packages Managing package repositories
Adding additional repositories Adding Personal Package Archives
Backing up and restoring Debian packages Cleaning up orphaned apt packages Taking advantage of hardware enablement updates Summary Further reading
Navigating and Essential Commands
Learning essential Linux commands Understanding the Linux filesystem layout Viewing the contents of files Viewing application log files Summary Further reading
Managing Files and Directories
Copying, moving, and renaming files and directories Editing files with the Nano and Vim text editors
Editing with Nano Editing with Vim
Input and output streams Using symbolic and hard links Summary Further reading
Boosting Your Command-line Efficiency
Understanding the Linux shell Understanding Bash history Learning some useful command-line tricks Understanding variables Writing simple scripts Putting it all together – Writing an rsync backup script Summary Further reading
Controlling and Managing Processes
Managing jobs Understanding the ps command
Viewing running processes with ps Configuring arguments to ps
Changing the priority of processes Dealing with misbehaving processes Managing system processes Scheduling tasks with cron Summary Further reading
Monitoring System Resources
Viewing disk usage
Using df Diving deeper into disk usage
Monitoring memory usage
Understanding server memory Managing swap
Understanding load average Viewing resource usage with htop Summary Further reading
Managing Storage Volumes
Adding additional storage volumes Formatting and partitioning storage devices
Creating a partition Formatting partitions
Mounting and unmounting volumes Understanding the /etc/fstab file
Analyzing the contents of /etc/fstab Adding to the /etc/fstab file
Backing up and restoring volumes Utilizing LVM
Getting started with LVM Formatting logical volumes Removing volumes with LVM Understanding LVM snapshots
Summary Further reading
Connecting to Networks
Setting the hostname Managing network interfaces Assigning static IP addresses Understanding Linux name resolution Getting started with OpenSSH
Installing OpenSSH Issuing commands with OpenSSH
Getting started with SSH key management
Generating public and private keys Copying your public key to a remote server Utilizing an SSH agent Changing the passphrase of an OpenSSH key
Simplifying SSH connections with a config file Summary Further reading
Setting Up Network Services
Planning your IP address scheme Setting up a DHCP server for serving IP addresses Adding a DNS server
Setting up external DNS with bind Setting up internal DNS and adding hosts
Setting up an internet gateway Keeping your clock in sync with NTP Summary Further reading
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 Further reading
Managing Databases
Preparations for setting up a database server Installing MariaDB Understanding the MariaDB configuration files Managing MariaDB databases Setting up a secondary database server Summary Further reading
Serving Web Content
Installing and configuring Apache Installing additional Apache modules Securing Apache with TLS Installing and configuring NGINX Setting up failover with keepalived Setting up and configuring Nextcloud Summary Further reading
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
Setting up an inventory file and configuring Ansible settings Configuring client servers
Putting it all together – automating web server deployment Using Ansible's pull method Summary Further reading
Virtualization
Prerequisites and considerations 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 Further reading
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 Further reading
Container Orchestration
Container orchestration Preparing a lab environment for Kubernetes testing Utilizing MicroK8s
Installing MicroK8s on Linux Installing MicroK8s on macOS Installing MicroK8s on Windows Interacting with MicroK8s
Setting up a Kubernetes cluster
Configuring Docker Testing Docker Installing Kubernetes
Deploying containers via Kubernetes Summary Further reading
Deploying Ubuntu in the Cloud
Understanding the difference between on-premises and cloud infrastructure Important considerations when considering cloud computing as a potential solution Becoming familiar with some basic AWS concepts Creating an AWS account
Signing up for AWS Implementing basic user security
Choosing a region Deploying Ubuntu as an AWS EC2 instance
Setting up an IAM Role for Session Manager Creating an Ubuntu Server instance in AWS
Creating and deploying Ubuntu AMI images Automatically scaling Ubuntu EC2 deployments with Auto Scaling
Creating a launch template Creating an Auto Scaling group Creating a load balancer
Keeping costs down: understanding how to save money and make cost-effective decisions
Viewing billing information Adding a billing alert Removing unneeded backups Running EC2 instances only when they're needed Stopping or terminating unneeded EC2 instances
Taking cloud further: additional resources to grow your knowledge
Online training and labs Certification Keep experimenting and learning AWS documentation
Summary Further reading
Automating Cloud Deployments with Terraform
Why it's important to automate your infrastructure Introduction to Terraform and how it can fit within your workflow Installing Terraform Automating an EC2 instance deployment Managing security groups with Terraform Using Terraform to destroy unused resources Combining Ansible with Terraform for a full deployment solution Summary
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 Further reading
Troubleshooting Ubuntu Servers
Evaluating the scope Conducting a root cause analysis Viewing system logs Tracing network issues Troubleshooting resource issues Diagnosing defective RAM Summary Further reading
Preventing Disasters
Preventing disasters Utilizing Git for configuration management Implementing a backup plan Replacing failed RAID disks Utilizing bootable recovery media Summary Further reading
Another Book You May Enjoy Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion