Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor BPB Online or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
BPB Online has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, BPB Online cannot guarantee the accuracy of this information.
Dedicated to
To the best person I have met in my life:
Elizabeth Wangari.
About the Author
Alberto Gonzalez is a Principal Architect at Red Hat with more than 20 years experience in the IT sector, with his main focus being Cloud and Infrastructure, and mainly open-source software. He is currently teaching and creating content on Hybrid Cloud technologies. Alberto has previously written two books in Spanish, one about Ansible and another about Docker.
About the Reviewer
Harshal Lakare is a Linux administrator with over 11 years of experience in the field. He has a strong background in system administration and has expertise in a variety of Linux distributions. Harshal is skilled in troubleshooting, problem-solving, and has a keen eye for detail. He is also a team player and enjoys collaborating with others to achieve common goals. In his spare time, Harshal enjoys reading and keeping up with the latest trends in the field. Overall, Harshal is a talented and dedicated Linux administrator who is committed to delivering high-quality work and helping his team succeed.
Acknowledgements
My gratitude goes to the team at BPB Publication for helping me during the writing process. Not being native in English is a challenge, but they helped during the whole process to create a book that I am proud to have written. They were supportive during the whole process, understanding the changes proposed and new topics added during the writing process.
I want to say thanks to my family and friends; they understood that writing a book requires to dedicate multiple hours which I should have dedicated to them. This book is the result of that effort.
Preface
This book covers how to administer a Linux server from basic tasks to advanced ones., starting with the installation of popular Linux distributions, going through administration users and software, to the installation and administration of advanced services such as databases and file sharing. This book will guide you through new technologies related to automation, containers and DevOps philosophy. Public and Private Clouds are covered, as well as why Hybrid Cloud is an important concept for enterprises.
is the introduction to Linux. This chapter explains the history of the Operating System, the usage of Linux in most of the devices available and the IT sectors where Linux is the main operating system. This chapter also covers the latest features available and discusses the promising future of Linux.
covers the Linux installation. It describes the different support levels available for the popular distributions. It also details the installation methods available and guides step-by-step how to install the popular Linux distributions available.
introduces the Command Line Interface, a main component when a user is operating or administrating a Linux system. This chapter covers basic commands and concepts related to the input and output of the commands. Commands to identify the resources of the system are detailed with different examples.
shows how to manage users and software on Linux. It describes how users and groups work on Linux. With multiple examples, this chapter describes how to install software on systems such as Ubuntu Server or Red Hat Enterprise Linux.
covers how to manage files, directories and processes. It describes the directory structure on Linux, the permissions and how to access to the files. This chapter also covers the special characters and the regular expressions, as well as the important concepts working on the terminal. Popular editors and file managers are also described. The last part of the chapter focuses on the process management and the priorities.
explains how to monitor the resources in the system. Commands to query the usage of CPU, Memory, Disk and Network are described with several examples. This chapter covers quotas and limits to limit the usage of the resources available.
covers the basics of the networking in general and explains how to configure the networking on Linux system. It also discusses commands to manage the IP addresses, and the routes are shown with different examples. In addition, advanced network configuration, such as bonding, bridges and virtual switches are also covered.
focuses on the security part on a Linux system. It discusses the different firewall solution available and how to ensure that the services are correctly protected against unwanted access. Different tools are described to monitor the traffic and the changes in the system.
details the popular network services available on Linux and the software associated to offer the services. Services such as DHCP, DNS and SSH are detailed with examples and the commands associated.
is about File Sharing solutions available on Linux. It describes NFS, SMB and FTP protocols and the software to provide the services and the client tools.
covers the popular databases available on Linux system. This chapter describes the difference between relational databases and NoSQL databases. Different solutions such as MySQL and MariaDB are detailed for the relational databases and MongoDB is described for the NoSQL database.
details about what is Automation and the importance in these days. This chapter explains how to perform automation with shell scripting and developing, with a programming language such as Python. The popular tool Ansible is detailed to perform simple and advanced automation tasks.
details the containers and the modernization of applications. Software to run containers, such as Docker and podman are also explained with several examples of usage. A basic introduction to Kubernetes is explained. New practices such as Continuous Integration and Continuous Delivery (CI/CD) are explained and the software available for these practices are described with different examples.