From all of us here at NodeSpace, we hope that your year is off to a great start! There are a lot of New Year Resolutions out there and while most are fitness and health related (such as going to the gym more or losing 40 pounds, maybe even eating less junk food), but some people like to have resolutions geared towards their careers or hobbies. Maybe this is the year you decide to become a Linux Sysadmin! That’s what this post is about.
Advice from a sysadmin
I’ve been a sysadmin for a while now – well over 10 years. There are others out there who have even more experience than me (and if you do, please let us know in the comments!) but I wanted to give you my advice.
First, no one just hands you the keys to a multi-million dollar enterprise and says, “drive!” You will have to start at the bottom and work your way up. That means you will have to spend awhile in the help desk. You will also have to do some tasks you don’t like – like walking a user through updating their printer drivers. It’s not fun, but you have to spend some time there.
Next, you do need to be a people person. Even if you’re not directly dealing with customers, you still have customers. They are internal customers, but they are still customers. That means you do have to have some soft skills. Many people gravitate towards becoming a sysadmin because they think they don’t need to deal with people. Besides being very actively involved in tickets here, in previous jobs I also had to occasionally reach out to customers directly. Don’t play telephone with the help desk. Communication easily gets lost or mistranslated.
Finally, always keep learning. Continuing education is important. Things change often and fast. For example, there are a lot of big differences between CentOS 7, AlmaLinux 8, and AlmaLinux 9. It seems like yesterday, we switched from LILO to GRUB. Even the transition to systemd seemed to have happened rather quickly. While a lot of things stay the same, changes happen fast and it’s good to have resources so you can learn. For example, you may want to get yourself a lab server. This way, you can try things out in a sandbox.
Getting started
First, check if your laptop or desktop is capable of running virtual machines. Using software like VirtualBox or Vmware Player will help you install virtualized versions of different Linux distributions locally. Why locally? If you’re not well versed in server security, it’s best to learn in a safe environment where you don’t have to worry too much about a mis-configuration getting your VPS provider mad at you. As tempting as it is to spin up a VPS, don’t do it yet.
Download ISOs for Ubuntu Server and AlmaLinux 8 (you can also go for AlmaLinux 9, but most companies will be using AlmaLinux 8 or Red Hat Enterprise Linux 8). Additionally, you may want to enroll yourself into the Red Hat Developer Program. This will give you a subscription for Red Hat Enterprise Linux, knowledge base articles, and some additional software. This may be beneficial if your current employer uses Red Hat Enterprise Linux or you would want to move to it.
Once you get a distro, manually install it and get to know the process so you understand it. You might be tempted to use a pre-built image, but when you install it from scratch, you understand what is going on. That will help you learn automation later on.
Once installed, try different things:
- Update your system
- Install Apache or NGINX along with PHP and MySQL – get a WordPress site working
- Add/remove user accounts
- Make a user account part of the administrative group – then remove it
If you’re looking for a challenge, try compiling a Linux program from source or setup a remote code server for Visual Studio Code and try to build an open source application directly from source code that way.
A benefit to using a virtual environment is that you’ll be able to easily snapshot your VM before making any major changes. Then, if you find out you made a mistake (and this is the best way to learn!), it’s easy to roll back if you’re unable to fix the problem.
Also, get comfortable using the command line. If you installed a GUI, uninstall it. Or switch to a text console. Hint: Pressing Ctrl+Alt+F1..F6 will open a virtual console. You get 6 of these and it’s something from the old Unix days. To switch back to the GUI, press Ctrl+Alt+F7. The 7th virtual terminal is reserved for your Window Manager or Desktop Environment (and if pressing Ctrl+Alt+F1 does nothing, then this means your distro is using the first virtual console for the Window Manager/Desktop Environment. Try pressing Ctrl+Alt+F2 instead.)
Use your resources
There are a ton of great resources on the Internet. Generally, by searching for your problem + your distro, you’ll find someone else with the exact same problem.
Some excellent websites I recommend using:
- Linux Questions – https://www.linuxquestions.org
- nixCraft – https://www.cyberciti.biz/
- Ubuntu Documentation – https://help.ubuntu.com/
- Red Hat Knowledgebase (Free account required) – https://access.redhat.com/search/
Additionally, I keep a few books in my library that are always referenced:
- “Unix and Linux System Administration Book 5th Edition” – ISBN: 0134277554
- “Linux Bible 10th Edition – ISBN: 9781119578888
Remember how I said that continuing education is important and that things in this arena change at the speed of light? Any resource you find (even reputable) can quickly become out dated. So the next best thing is to use the built-in manual in every Linux system. Open a terminal (or command prompt in Windows language) and type in man <command>
and if you’re not sure what command you need, you can search the built-in manual with man -k "keywords"
. For example, let’s say you know your system has a firewall, but you don’t know what you should use to control it. man -k "firewall"
will return, for example:
firewall-cmd (1) - firewalld command line client firewall-offline-cmd (1) - firewalld offline command line client firewalld (1) - Dynamic Firewall Manager firewalld.conf (5) - firewalld configuration file firewalld.dbus (5) - firewalld D-Bus interface description firewalld.direct (5) - firewalld direct configuration file firewalld.helper (5) - firewalld helper configuration files firewalld.icmptype (5) - firewalld icmptype configuration files firewalld.ipset (5) - firewalld ipset configuration files firewalld.lockdown-whitelist (5) - firewalld lockdown whitelist configuration file firewalld.richlanguage (5) - Rich Language Documentation firewalld.service (5) - firewalld service configuration files firewalld.zone (5) - firewalld zone configuration files firewalld.zones (5) - firewalld zones
Now you can type man firwalld
to read about the Dynamic Firewall Manager or man firewall-cmd
to read about the firewalld command line client, including options and example commands, and what each option does.
Knowing how to find information using the man pages is extremely helpful as sometimes you need to fix a system without Internet access or you have Internet, but no GUI.
Keep following the NodeSpace blog for future articles on how to develop your sysadmin skills!