Ask HN: Advice for learning Linux system administration?
6 comments
Runjake gave you some excellent advice - you should definitely use CentOS to run your personal device(s).
Aside from that, I have a few other recommendations:
1.) Don't just let the client use one box. You need a production box and a staging box. You need a staging box because simple things (ie - doing updates) will sometimes fuck things up beyond repair. It is way better to have a fucked up staging box than a fucked up prod box!!
2.) If you're looking for information on security and monitoring, I'd suggest reading over the PCI-DSS documentation. Vast swaths of PCI-DSS are festering crap, but it will give you a good look at how some people like to monitor their systems. While you're at it, read Owasp's secure configuration guide and NIST's publication on server monitoring. You're not likely to get solid answers here, but you should get a sense of the trade offs that sysadmins have to make.
3.) If I were in your shoes, I'd build a Vagrant box that exactly matches what you'll use in staging/prod. This box is purely for fun. It's way easier to try new things on your local!
4.) Have fun!! Sysadmin is a dark art, but it's also incredibly fun. Enjoy learning and have fun!
Aside from that, I have a few other recommendations:
1.) Don't just let the client use one box. You need a production box and a staging box. You need a staging box because simple things (ie - doing updates) will sometimes fuck things up beyond repair. It is way better to have a fucked up staging box than a fucked up prod box!!
2.) If you're looking for information on security and monitoring, I'd suggest reading over the PCI-DSS documentation. Vast swaths of PCI-DSS are festering crap, but it will give you a good look at how some people like to monitor their systems. While you're at it, read Owasp's secure configuration guide and NIST's publication on server monitoring. You're not likely to get solid answers here, but you should get a sense of the trade offs that sysadmins have to make.
3.) If I were in your shoes, I'd build a Vagrant box that exactly matches what you'll use in staging/prod. This box is purely for fun. It's way easier to try new things on your local!
4.) Have fun!! Sysadmin is a dark art, but it's also incredibly fun. Enjoy learning and have fun!
Get one of those really thick Linux books (you know the Linux Bible ones) I think any edition may work fine (though later ones will cover new technologies like systemd) Read it from cover to cover - not every word, take in what you can of what you see, glance over the complex parts and go back later, bookmark the interesting ones (you'll have a lot of bookmarks). This helps quite a lot to get an idea of the Linux big picture.
Now pick up an administrators guide, and use a spare machine to play with and start working through it. I'd probably start on the basics like installing Linux, compiling programs (compile a a game to play if you find it boring) configuration (change Internet settings, set up a web server, file server) make a backup script, restore your backup, etc.
Learn to document what you do so you: a) can see what you did later on and b) can do it again if you need to.
I'm gonna say its going to take at least a 1/2 dozen linux installs and configures before you get the hang of how all that works and other things will be a little trial and error till you hit on the right way to do it.
Now pick up an administrators guide, and use a spare machine to play with and start working through it. I'd probably start on the basics like installing Linux, compiling programs (compile a a game to play if you find it boring) configuration (change Internet settings, set up a web server, file server) make a backup script, restore your backup, etc.
Learn to document what you do so you: a) can see what you did later on and b) can do it again if you need to.
I'm gonna say its going to take at least a 1/2 dozen linux installs and configures before you get the hang of how all that works and other things will be a little trial and error till you hit on the right way to do it.
Bad news first: your life of googling is not over.
You will Google a lot even if you become a Pro sysadmin.
But you have an advantage^Wsuperpower: you can read code. That means when there is some weird log entry somewhere you can grep the codebase and try to find out what made it happen.
Some skills you'll find useful:
- Learn to read man pages. The info for almost everything is there. You need time to get used to man pages but as soon as you know how to skip most of the content you will be fine.
- tail -f is your friend. Use it whenever you need to know what's happening.
- Sharpen your communication skills. You will have to report stuff that happened late at night and what you did to make it work while you were supposed to be sleeping. Hint: Emails with good subject lines, using the first paragraph to summarize all, then add a technical explanation section below makes the boss and coworkers happy.
- Learn something about devops, automations, and infrastructure that can be validated with scripts. You'll have future there :)
Cheers from another programmer .ade sysadmin... 20 years ago.
You will Google a lot even if you become a Pro sysadmin.
But you have an advantage^Wsuperpower: you can read code. That means when there is some weird log entry somewhere you can grep the codebase and try to find out what made it happen.
Some skills you'll find useful:
- Learn to read man pages. The info for almost everything is there. You need time to get used to man pages but as soon as you know how to skip most of the content you will be fine.
- tail -f is your friend. Use it whenever you need to know what's happening.
- Sharpen your communication skills. You will have to report stuff that happened late at night and what you did to make it work while you were supposed to be sleeping. Hint: Emails with good subject lines, using the first paragraph to summarize all, then add a technical explanation section below makes the boss and coworkers happy.
- Learn something about devops, automations, and infrastructure that can be validated with scripts. You'll have future there :)
Cheers from another programmer .ade sysadmin... 20 years ago.
This is a serious answer:
1.) Get a machine.
2.) Install CentOS on it.
3.) Dogfood (use) that machine full-time.
You'll be up to speed in no time.
1.) Get a machine.
2.) Install CentOS on it.
3.) Dogfood (use) that machine full-time.
You'll be up to speed in no time.
:-) I like the dogfood part
The main issue is that this is a server which many people will use and there are some business-important services that will run on it.
I'm definitely planning on installing and using CentOS as a personal machine to help learn.
I was thinking more along the lines of security and monitoring.
The main issue is that this is a server which many people will use and there are some business-important services that will run on it.
I'm definitely planning on installing and using CentOS as a personal machine to help learn.
I was thinking more along the lines of security and monitoring.
BTW, I have found this:
https://www.centos.org/docs/4/4.5/pdf/System_Administration_...
https://www.centos.org/docs/4/4.5/pdf/System_Administration_...
I'm looking for tips on learning Linux system administration. I've been programming for ~15 years on a variety of OS'es, including Debian and Windows. Most of the admin stuff I know is just from random googling on my current problems.
I've been asked to help administer a Linux box (CentOS).
What should I do to make sure I have the chops for Linux system administration?
TIA