The skills required to remain current in the sphere of IT are always changing and in this regard, the role of the Linux administrator is the rule and not the exception. Over the past few years, there has been an increase in the skills required to be a Linux administrator. To illustrate that growth, let’s think of the Linux skill set as a building where the current floors are being remodeled and new, more impressive floors are being added to the top. The current move to web applications and web services, cloud-based environments, and big data have become the top floor penthouses. They are the skills that the best employers are looking for, and they will put you in high demand. Let’s take a look at the whole thing from the ground up.
The foundation and basement – Linux system administration
This is an area all Linux/Unix old-timers will recognize. Even though there are now graphical interfaces to accomplish many of these tasks, if you’re serious you’ll learn to use the command line interface in a default shell like Bash. You’ll need to be able to perform tasks such as creating storage (fdisk, mkfs, mkdir, mount), managing files and directories (cd, ls, pwd, rm, rmdir), managing users and permissions (useradd, userdel, psswd, newgrp, chgrp, chmod, chown), managing processes (top, ps, pgrep, kill), managing the boot (GRUB, LILO, run levels), and creating backups and restoring (tar, rsync, dd). Furthermore, let’s not leave out the ever useful vi editor.
The commands for doing the above and more can be found in a PDF called The Linux System Administrator’s Guide, located at The Linux Documentation Project (TLDP). TLDP maintains a very useful website that is chock-full of free information.
The main floors – Linux network administration
Once you can manage a stand-alone system, you need to be able to connect that system to other systems with networking concepts such as addressing, routing, and DNS. Again, although there are graphical tools, you should be able to configure the network using just command line tools like ifconfig, route, ip, and iptables. You’ll also need to know how to troubleshoot using tools such as tcpdump.
Once more, this well-known territory has been covered many times by many people, and information is obtainable by going to TLDP.org and downloading the free Linux Network Administrators Guide.
The top floors – current Linux technologies
Once you’re ready to move into the top floors, you’ll learn about better tools for doing familiar tasks—such as, but not limited to, infrastructure automation and configuration management (Chef, Puppet, Ansible, SaltStack), version control (Git and Perforce), monitoring and reporting (Nagios and Ganglia), log management (ELK), and metrics management (Graphite, Cacti, Splunk).
At the very top of the building sit the prize technologies—web applications and web services, web performance and monitoring, cloud-based environments, and big data:
- Cloud architectures like Amazon Web Services and OpenStack
- New types of web servers like NGINX
- Big data with Apache Hadoop
- Load balancing with Keepalived and HAProxy
- Databases like MySQL, MongoDB, and Cassandra
- Caching with Memcached and Redis
- Virtualization using KVM and containers like Docker
The Docker containers are an especially hot topic now. Using containers for virtualization is often a more efficient solution than using whole virtual machines, as long as you don’t mind all your containers running the same OS version. In fact, containers can be four to six times more efficient with resources than virtual machines, since they abstract just the operating system kernel and not the whole machine. This means companies can save big money by getting more computing power out of their current hardware. Along with these technologies comes the challenge for the Linux administrator to update their security knowledge to operate in this new virtual environment.
The skills necessary to be a Linux administrator five years ago are no longer adequate today. They are still necessary, but additional knowledge is required—specifically, web applications and web services, cloud-based environments, and big data. Still, don’t be intimidated by the seemingly esoteric nature of the knowledge required by Linux. The information and software is freely and publicly available. There are also plenty of graphical tools, included with most distributions, to get you going before you have to learn the command line. Why not get started by downloading a free copy of a Linux distribution such as Ubuntu? That can be found at https://www.ubuntu.com/download.