Best Training in Linux Administration?
Love to Learn Linux asks: "My company is making the move to Linux. I've been a Windows admin the last 5 years and have been asked to learn Linux. I've got some O'Reilly books but I need some hands on experience. My company will pay for any Linux training I choose. I'd prefer an online course to one of those 4 day classroom courses since I'd like to take my time and really learn it.
So far, I've been recommended the Red Hat eLearning course and the O'Reilly Learning Lab. Would you recommend either of these over the other, or are there some better choices?"
Yes, some people mock Gentoo, but installing it is once of the best linux learning experices I've ever had. Even if you don't end up running it, it'll teach you a good bit about the internals. The documentation is pretty good as well.
I did a 6-day bootcamp style training session with TrainingCamp. I successfully attained my LPIC-1. Out of the 6 people in my class 2 (including myself) had previous Linux experience and we both passed, the others failed. However, having many coworkers and friends that are teaching themselves linux, this would have given them one of the best starting points around. Highly recommended no matter what your skill level.
and have a look here:
http://www.tldp.org/LDP/lfs/html/
Personally I'd recommend the RedHat training.
This will be more of benefit to you if you actually are going to use RedHat, but of course the general principles will apply.
If I were you, I'd also get Linux on a home machine and start "fiddling" to get up to speed.
Maybe install Vmware or a similar product so you can try different things.
Personally I took a leap and went from Windows to Gentoo linux and never looked back!
Good luck with it.
You could dual-boot an existing Windows machine or run VMWARE so you c
Games Programmer And Designer
If I were you I'd stay away from an online course. From what I've found, they usually aren't much better than just reading and doing reseach on your own, the only diffrence is that they have exams and it adds to your GPA. Perhaps you should find a real class of some type (perhaps one of those weekend campy type deals) and get some real world hands on experience.
The key is learning on a hard distro, and sticking with it until you master the damn thing. I started my Linux career with Slackware (although I did know sh from my required "introduction to unix" course so I wasn't that fucked.)
;)
Was that wise? I doubt it, but I'm nothing if not stubborn.
Only in a Slashdot fantasy can a Slackware install turn into several hours of sex . . . . .
Seriously, get your co to pay for training in the most interesting setting they'll allow, where you can score a free lunch.
If you have time to "take your time", where you'll really learn is by installing at home. Have the co fork over for VMWare, and set yourself up with a nice virtual network on your home machine. You'll learn way more than through any online training course. You may even want to do this for a few weeks before starting the official training course.
This is a little off beat, but if you're totally new to unix, it might be helpful to nab a copy of Solaris x86 and put that in a vmware machine. I hate to admit this, but when I was starting I had a hard time understanding the linux man pages. The Solaris documentation was just luxurious, and the main options for commands pretty much the same. It used to be (maybe still is) free so you can probably get a copy someplace.
Good luck.
Kill, Tux, kill!
By picking the hardest distro such as an older Slackware (don't knock the new ones), you've essentially master-micro-managed all aspect of Linux administration in virtually no time.
It's no different than mastering the DOS 3.3 command set and scripting; just [infinitely?] more commands scripting, languages and widgets at your disposal.
Heh - if my company were footing the bill - I'd go for one of them Carribean geek-cruises. :)
Realistically - aside from the "install at home" and "online courses suck" and "go to TLDP" - find a local Linux Users Group. Nothing at all beats face to face and it's value is compounded by the fact that it's hard to come up with months of future questions in a 5 day class - having a group of people you can sit down with any time goes miles to improving your skills with Linux. They'll often see things you'll miss or not be taught.
I agree with everyone else who says that you need hands on starting in your own home and in your own time.
I found that the O'Reilly books are really good, but their LPI in a nutshell is not the be all and end all of LPI study materials at all (if you're interested in going for level 1 of that). Sometimes the man pages will do - but more often than not, they won't cut the mustard.
One by one you'll have to go through getting different Linux servers up and running... starting with the old faithful Apache, BIND, qmail, NTP, FTP, SSH, Samba, Net-SNMP, etc., and once you've done setting up all of those, try your hand and some of the other more obscure open source projects out there and get them compiled.
Stuff like Nagios, MRTG, Big Sister, IPsec tools (freeswan, KAME), learn how to craft a firewall with iptables, try encrypting a file system with dmsetup, etc.
Don't stick to one distribution. Try as many of the free ones as possible. Each has thier own strengths and weaknesses,... not to mention different locations for config files, and different methods of package installation.
Enlist to as many mailing lists and IRC groups as possible..., then unsubscribe when you're email box can't cope anymore.
Compiling the Linux kernel is a right of passage for all admins.
Leanr how to write a shell script, and don't be tempted to play with X windows or all of RedHat's easy to use configuration programs too much.
Finally, be patient - this takes time, and drink lots and lots of coffee and keep a supply of hair on your head for occasional ripping out. You'll need it.
READY.
PRINT ""+-0
I totally second this.
I'll add that I think that the best distro to learn the guts of Linux on is Gentoo. Go the full compile-it-yourself route. There are easy to follow, step by step instructions, and they take the time to tell you why you're doing everything. By the time you have it installed (and it will take a while), you'll be a virtual expert on Linux.
Of course, you shouldn't limit yourself to just one distro, and Gentoo probably isn't the easiest to manage. I like Debian stable for server things because it is so easy to keep up to date.
from the looks of it, the Microsoft "shared source" program seems to offer all of the same freedoms as the GPL.
And, I think my personal fave:
VB can go just as low level as C and the newest VB compiler generates code that's every bit as fast
woooo!, oh man, I can't stop laughing. please, someone make it stop!
Get the book Linux for Windows Administrators by Mark Minasi and Dan York. (Amazon)
It is really an exelent book with so-called "Cookbooks". They're step-by-step instructions on how to setup DHCP, DNS, Apache, Sendmail, FTP, WINS (I think), and some other stuff I forgot. Even I could figure it out! They were really simple instructions, and, better yet--they really worked!.
So, that's the book I learned from. It's based off RH 7.3, but the instructions worked fine also with Slackware (9-10) and RH 8.
[No I don't get kickbacks].Tell the truth and you won't have so much to remember.
In your work lab get 2-3 computers. Set up a linux box as a DHCP and DNS server, then maybe add apache, samba, etc. These are the things that you'll likely be using linux for in the enterprise, right? You can play with firewalling and IPSec if that is your thing too.
After the initial install, go here to learn the rest:
The Linux Documentation Project
The basic sysadmin guide there will give you the basics, and the specific howto's are great for setting up DHCP, DNS, etc.
Another good guide:
IBM Linux Newbie Guide
Set up that small net, play, learn, then go to your class and learn a lot more.
Have fun!
I agree with parent. Setting up at home is a great way to learn. Try it on several different machines with different configurations if possible. Getting hardware to work on Linux isn't as bad as it used to be, and you really don't have to recompile the kernel anymore, either.
There are a few good books availalble. O'Reilly books, theres a book called "how linux works" and i believe even one called "Linux for New users" or something (neither of those by oreilly) and here's a website i found doing quick google search: here it looks a little dated but should still work for you
also you can find a ton of information on whatever youre trying to do. when i was learning IP chains i simply googled and found many pages and had it running in no time. and i think samba comes with an old version of an orielly book in html format with it.
Now, start playing. Basic install on your server, play with the interface for a bit. Get out the "Linux Network Administrator's Guide" and read it cover to cover. Read the Samba documentation in equal detail. Make a checklist of all the services you will need to support (DHCP server, DHCP client, Samba, Mail, WWW, FTP) and try them out. Get your test lab working with them.
Now, play harder. Try to make Samba a domain controller. Set up RAID on your Linux server. Do some NFS to your Linux client. A big stack of Linux books, a personal lab, and a workplan of things to try and make work will get you fully trained up, probably several years faster than I took learning a little at a time. :)
Install one distribution (I'd prefer Fedora Core 1), then http://www.tldp.org/, then http://www.linuxquestions.org/. Free, but takes time.
http://rute.2038bug.com/index.html.gz
The best place for questions:
http://www.linuxquestions.org/
More reading:
http://www.tldp.org/
------
You've seen the posts, now see the website!
http://hiddenuniverse.blogspot.com/
No, it's not. When you just install a distro at home and start using it you'll learn a lot, sure. But what you'll learn a scattershot and mostly just what you need to do to get a functional system, because that's what your incentive is to do. You won't learn best practices and you won't learn why things are they way they are. Heck you probably won't even learn about some fairly basic tools just because you didn't happen to need them. You really need the formality of a structured learning environment (not a class, specifically, but a structured curriculum at least) to make sure you cover everything you need to know.
I know it seems to be the number one recommended method here on Slashdot, but it really has some serious flaws that everyone seems to conveniently overlook. Following your advice leads to sloppiness and "good enough"-ness. Not exactly skills that will endear you to an employer.
The book you mentioned, Essential System Administration by AEleen Frisch is definitley an excellent reference. It was the core textbook, along with A Practical Guide to the UNIX System by Mark Sobell in my college Unix introduction course. The first book will act more as a reference, while the second book may be a better walkthrough.
Oh yeah, I forgot. This is essential:
Maintain a seperate network to put your wife and kids PCs on because they get really pissed off when they find out there's no internet and they can't get TV Guide because you wanted to see what would happen as you type in mysterious iptables rules.
Pay for another router/switch, and route both subnets to your dsl modem or whatever. Bonus you get to learn about setting up subnets and DMZs and funky routing ju ju.
I don't need no instructions to know how to rock!!!!
- Take advantage of an off-site "bootcamp". They won't make you a Linux SysAdmin, but they will give you a very good head start and are a good introduction to Linux. Let someone coach you through the first installs in class - you'll get plenty of opportunity to beat your head against the wall on your own later.
- Definitely set up systems at home. The best way to learn is getting your hands dirty and using it every day. I'd also recommend using it as your primary workstation right off the bat at work; drink your own champaign, so to speak. With tools like rdesktop, smb4k, webmin and OpenOffice.org your should be able to do everything you need to do while you learn.
- Build a good reference library. You've already mentioned O'reilly - they're great, but also build up a library of bookmarks and make friends with google!
- Try many different distros. Everyone you ask will tell you difinitively which one is best. Don't take their word for it, find out for yourself. Besides, my recommendation for a desktop distro for my budy isn't the same as the distro I'd use for myself, and that is different still from the distro that I'd run as a web- or file-server, etc.
Personally, I'd not spend my time, initially, on an online course. In my experience, you're better off starting out in an environment where you have someone in meat-space to bounce questions off of and get answers immediately. Once you know your way around Linux a bit, then pick some specific goals or projects (set up a mail server with DNS, set up a webserver with secure areas and cgi scripting, etc.). Just going through the process of downloading the latest apache and compiling it from source (and forgetting to compile in certain functionality or having to go hunting for supporting libraries for a function you're missing) will give you invaluable insight into the whole process of fine-tuning and customizing your Linux boxes to really make them perform as you want.And if you don't know perl and php, learn them! Windows admins don't naturally think of scripting something right off the bat, at least I didn't. Now, "how can I script this?" is the first thing I ask if I find myself doing the same thing more than once. I've even loaded ActivePerl onto my Windows Servers and have my entire user and group management process scripted. over 18,000 users are created, placed in groups, have their home directories created/moved/archived, etc. based on data gleaned from HR's databases. I used to get lists of hires, fires and transfers and have to manually manage their accounts and data. Not any more. A couple of perl scripts and an Active Directory perl module with a little Win32::OLE thrown in and I spend my valuable time doing more important stuff (like post on /.)
Anyway, this is free advice, which means you get what you pay for ;-) Welcome to the club!
"terrorism" and "pedophilia" are the root passwords to the Constitution
In general, I think there are advantages to taking courses like RedHat's, as well as a do-it-yourself approach:
Instructor-led:
Pro: There's someone there to answer your questions.
Pro: You can dedicate yourself to the material without interruption.
Pro: You won't be led off on tangential tasks.
Pro: You'll have something to put on your resume.
Con: You might be overly isolated from the nuts-and-bolts
Do-it-yourself:
Pro: You'll learn where to go to find the answers on your own.
Pro: You can focus on topics that are important to you.
Pro: You're exposed to the full breadth or possilities.
Con: You'll have to figure out on your own what's signal and what's noise.
FWIW, I've looked into the RedHat courses for some of my employees, and I think they're fairly good for someone who wants to learn useful Linux (for business) administration. The topics are a good mix of basics and enterprise-level stuff.
To help you with the self-taught portion of your learning experience, I highly recommend Linux Administration Handbook. It will lead you from low-level (booting, etc.) to high-level (web servers, backups), and it's concise enough to use as a reference later on.
There's nothing that even comes close to having a hardcore hacker as a good friend. Information is quickest gained through other people's personal experience.
I've done it all. I've read a whole series of O'Reilly books (don't even bother with any other publisher) on various Linux and Network related subjects--I've read at least 25 of them cover-to-cover in the last 4 years. I have a whole bookshelf lined with them.
Then I subscribed to O'Reilly's Safari online program, and will never again be without it. I'll never have to buy another tech book again. If you can tolerate reading books online, getting a subscription is an ABSOLUTE must. And if you buy (or would like to buy) an average of more then two or three books a year, this will save you loads of cash. You can read up to about 60 books a year for $10/mo.
However, when you need to come up to speed as quick as possible, by far and away the best resource is a friend who knows it all. Install Linux on all your computers, and play with every piece of software you may be even slightly interested. Read all the books, read all the man pages. Write a few scripts in Bash, Perl, Sed, Awk, and anything else you hear about. And when you get stuck (and believe me, you will), call up that friend or drop by his desk. You'll be an expert faster than you can immagine.
It's the little things, you know, that make you an expert. Anybody can copy files to another computer, but if you can come up with something like
off the top of your head, then people will start feeling the respect."With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea...."
RFC 1925
The biggest obstacle you face is not one of basic Linux familiarization, that can indeed be picked up through hands-on self-managed at-home training. There are many good books that can guide you in the basics, but the big obstacle is always TIME!
You will find that the demands to migrate Windows systems to Linux will outstrip your time. You need to pick up chilli-hot pointers to get basic services established in an instant.
For example: MS Windows has wizards and GUI tools to help get DHCP server, DNS server, file and print, etc. configured. Each requires only a limited amount oof back0ground information (IP Address, network mask, domain name, IP range for DHCP, upstream DNS server, gateway address, etc.) With Linux, no matter which distribution, you have to learn to use an editor (that is unlike anything you have ever used in Windows NT)and then manually configure each control file (dhcpd.conf, named.conf and so on) and if you get one dot wrong - your server will not work.
Samba is a bear to configure. Setting up a PDC and a BDC requires LDAP. Installation and configuration of LDAP requires more than transient knowledge! Then you have to install and configure a set of control scripts that interface between the Windows world (client requests) and the Linux OS. Again, this is not for the faint at heart average MS Windows network administrator who already feels out of his depth just having to deal with Linux.
If I were you, I'd check out the Samba web site, download the Samba-3 by Example book (can be purchased from Amazon.Com also) and use the networking examples it presents. You can download this book from: http://www.samba.org/samba/docs/Samba-Guide.pdf
The above book fully documents a wide range of MS Windows networks and includes all configuration files you may need for: 1. DHCP serving, Dynamic DNS, Samba, Firewall, CUPS (printing), etc. It is not perfect, but a good start.
You might also check out the Freedom Technology Center (see http://www.freedomtechnologycenter.org)for hands-on training courses they offer.
There is a wide range of potential training you can buy. Look for sources that run custom hand-on training. This is your best option to get yourself up to speed.
John T. jht@samba.org
I cannot recommend LFS highly enough... http://www.linuxfromscratch.org/ 'nuff said
Firewalling is probably harder than a web server (especially if you use thttpd).
I disagree with the other comments about Gentoo--I'd say Slackware or Crux is a better compromise between getting you to actually start using your system quickly and forcing you to learn how to use it.
Linux from Scratch is probably the best, closest equivalent to an online 'course.' It's much more engaging than a Gentoo install, and hand-holds you through all of the steps without doing them for you like Gentoo does.
There's a slim chance I might be biased, though :)
Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
Learn either LILO or GRUB like your life depends on it.
And for the love of Pete, If you compile a new kernel, DONT OVERWRITE THE OLD KERNEL!!!!!
Set up a new menu entry, so you can always failsafe back into the old kernel. I don't know how many times I've seen this done.
I started with Slackware back in the mid-'90s. I'd have to agree that it was a hard distribution to work with. At least back then, anyway. (Getting X set up took several evenings and a few scary sessions where you never knew whether your monitor would survive.) Since those days of yore, some friends have switched to Slackware from other distributions and they find it fairly simple. Of course they're not newbies tackling it any more, so...
Getting back to the original question: I'd suggest, if his employer can see that he's covered for the week and not getting yanked out of class to respond to a pager, that the fellow take the week-long class. Immerse yourself in it. Back when I was beginning to get into UNIX, I found that what worked best for me was to convert my system to run nothing else. It was DOS, Windows, VMS, and a bunch of other OSes at work but at home it was all UNIX all the time. (Technically it was Coherent but you get the idea.)
If he can swing it, I suggest getting a hold of a system that he can dedicate to use with his distribution of choice. Highly recommended. You wouldn't want to be screwing around and experimenting with dual booting the home Windows box and risking the wife's Christmas card list and the kids' term papers. (Not if you want to stay off their sh*t list, that is.) That way you can mess that system up, troubleshoot it, and fix it.
If you're not interested in fixing fouled up systems right off the bat, try doing some projects. I found several semi-work-related projects where I do some of the work at home on the new system. For example, we had some old FORTRAN code that some coworkers wanted converted to C. Heck, writing web pages for the intranet at work could be done at home on the Linux system. You'll learn one or more text editors along the way and most likely pick up some basic administrative skills at the same time. Anyway, I found it helped to have some goal when learning the new OS rather than just flipping around and trying things out randomly. Of course, YMMV.
CUR ALLOC 20195.....5804M
I've passed the 101 test for LPI Level 1 certification, and in one hour I'm going to take the 102 test. The LPI certificate is a good general indicator of how much you know of Linux, but I must say I'm a bit disappointed in the tests. There is quite a lot of "sausage stuffing" knowledge, such as memorizing standard ports, location of files, lots of command line commands and worst of all, command line parameters.
Try to memorize what -d, -w, or -f means for 50 different commands. -f could mean first, force, fake (simulate), file....
You might be able to force it in your brain, but it will fall out again two days after the test unless you are constantly using the commands.
I don't regret paying for the certification and the LPI certainly fills its place, but if I would chose today, I think I would rather go for CompTIA Linux+ certification (which I believe is more up to date), or maybe RedHat Certified Engineer. Does anyone have any opinions on those certificates?
Being bitter is drinking poison and hoping someone else will die
As soon as I read your post, this first response is exactly what I was thinking -- install it at home. If you have the hardware available to you, set up a lot of different configurations. Try not using your windows machines at all for a while and doing everything on Linux. If you don't have hardware available to you, get some. Linux runs great on machines 4 years old (yeah, yeah, we could run it on our 386's too -- but runs *well*) that cost $100 or are even free.
- Try:
- Linux as your firewall/router
- Install Apache - every good admin should know how to compile this and some basic configuration information
- Three words: "./configure", "make", "make install"
- Setup a second machine - test using NFS and Samba
- If you want to get a little adventurous, try NIS
- If you don't know sh, practice -- you'll need it -- same goes for VI
- RPMs (and I'm sure Debian's package manager also) make life easy -- if you want the easy way into linux, choose an RPM based distrobution like Fedora and check out YUM
- Having a weird problem that you can't easily solve? Google Groups are a good starting point.
Good luck.SAIR
Learned everything I needed to know in an hour from the man pages the first time I needed to set them for users.
How the kernel knows where the root partition is.
Learned this the first time I had a disk array fail and had to restore from backup. I don't remember where I found it, probably in the LILO documentation somewhere.
What the difference between the exire time in an SOA record and the TTL in the zone file is.
Haven't set up a fresh DNS server since I switched to djbdns a few years ago, so I didn't remember this one. Ten seconds of googling refreshed my memory.
I guess my point in all of this is that it doesn't matter if you have holes in your knowledge. Instead, it is important to know that you do have them, and to know where to find the information you need. And, for what it's worth, I'm mostly self-taught, but I've taken some classes. Both are valuable.