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?"
Install Linux at home. It's the best training you'll ever get. And then switch over your best friends and finally your grandparents. You'll be a pro in no time.
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.
Set up a firewall, web server, mail server etc, play with the hardware, reconfigure the things, set up raid, lvm, etc.
Nothing beats hands on, and nobody I've interviewed for a sysadmin job (and I've done quite a few recently) who didn't have a setup at home was any good.
-- Alastair
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.
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.
I see you mentioned the O'reilly books - they are the best. I found Unix Power Tools and System Administration (Alein Frisch, sp?) to be the best books you can buy.
As far as online course, I haven't found any worth a sh*t.
You know you're a geek if you've ever replied to a tagline.
In addition to whatever training you want to do, audit your office for its current tech needs. If time is short, you might not want to spend too much time studying minutiae unrelated to your future tasks -- some of that time can be put to better use preparing for the switch away from Windows.
Just a thought.
--------
Bleah! Heh heh heh... BLEAH BLEAH!!! Ha ha ha ha...
These days it is difficult enough to get training (at least in the corp America I work in) let alone offsite. A whole week to do nothing but dig in and learn. Take it... then on your own you can always do self paced work and such... it's a win-win.
Good Luck!
I
Ask a friend o someone else you know that has some experience to share it. People who love linux often love it because they learned it as hobby and those are the people who usually like to share the knowledge and help others learn it. But if the company has the money to spend, give that a try. Also read through the HOWTOs those helped me.
...and are they hiring?
If I even mention "training" where I work the laughs can be heard clearly from the other side of the planet. Funny how an organization that is so gainst paying for anything is staunchly anti-Open Source.
It seems quite a few geeks are recommending hands on experience as the way to go for learning linux. At risk of sounding like an offtopic troll, I would also recommend hands on as a way to learn about girls. No, not hands on *that*! Hands on the girl!
I bet that I now lost my reputation for being a geek.
Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
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.
My company will pay for any Linux training I choose You are one of the Luckiest bastard I know...
buffering...
If "someone" recommended Red Hat eLearning, I assume your company is adopting Red Hat? At the outset eLearning might be a reasonable choice, but if you really want to understand Linux, you'll probably want to laern more than just the Red Hat way of doing things. Experiment with Fedora or Red Hat 9 at home; then, after a few months, test a distribution that doesn't rely centrally on RPM and you'll gain a new, edifying perspective.
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
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!
Might be a good career choice if certifaction rocks your (or your employers) boat.
http://www.lpi.org
-psy
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/
Roll your own using http://www.linuxfromscratch.org/
I've found most distros have thier own GUI tools to simplify configuring your system but all these tools simply mask what's going on underneath where everything is really just shell commands and scripts strung together. When the GUI fails what you want to do, you're lost without knowing what goes on underneath. Beyond that, if you become familiar with Redhat tools and GUI and your work installs Debian you're starting over. I'd also reccomend learning Bash shell scripting which is the ultimate in telliing your Linux system what to do.
for an example of what's been done with Linux from scratch check out ByzantineOS
"The Most Fun Possible on 4 wheels" is at SunBuggy in Las Vegas
and sandbox your activities in it. If you can get your hands on 3 or 4 pc's and a cheap hub, you can get very far.
What you want to concentrate on are
*auth services (pam, unix, nis, samba, ldap, etc)
*mail (set up a few MTA's and try some different configurations)
*name services (dns - probably where you should start)
*shell usage (this takes a while)
*routing and firewalling
*printing (cups, samba)
*samba
Set aside a few tasks for yourself and star trying to do things. Stay simple at first, then work your way up to bigger things.
Though I don't see how the boss asking you to learn linux is much of a motivator.
Depending on how complex your network is you might even be able to get the company to fund a "model city" at work in a spare room.
You can use local sources to buy outdated computers, used switches, hubs, routers and etc to build a "dumbed down" low cost clone of your current network which will allow you to learn using it just like the real network, heck even the same IPs if you're going to put that much effort in. You can practice deploying software, using the systems etc. You might also want to get exact (sans-serial-numbers) clones of key servers if possible so you can test things very carefully.
It's a great way to learn but it'll really help to have a guru to get you going.
Find the local Linux User Group and get involved, make friends and then pester them on IM.
I honestly can't recommend a training program, though perhaps others can. I would keep it in line with the Linux your company plans to deploy.
But *in addition* set up a small network at home. Set it up as a mini-professional network, not a slapdash home network. You never learn like you do when you're doing, too.
But managers like Certifications, so I wouldn't suggest shorting out the course. Besides, some problems are related to scale, and you won't touch that on most home LANs. Book learning and practical learning can work together.
I'll second what someone said about Gentoo. While you want to deploy what your company uses, it wouldn't hurt to install a Gentoo box. Gentoo has very little handholding, and the install teaches you more than other installs. I wouldn't make Gentoo your first install, or even a particularly early one, though.
The living have better things to do than to continue hating the dead.
- 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
Yes, everyone I know who is best at Linux is self-taught. But how much time did that take? Valuable lessons can be learned alone, but you can reduce the time it takes by a factor of 10 or more with structured lessons.
I'm talking years here. You can reduce 10 years of lonerdom to 1 year by using structured learning tools. No class is going to teach you to be a guru in 4 days.
is not on where to get your training, but what to do before you start it. First, find out (if you don't know already) what distro your company is standardizing on, and make sure your training is geared towards it. You're going to suffer from infromation overload as it is, so there's no sense in going to suse-based training and learning yast if you'll be using red hat.
Second, identify the tasks you do as a windows sysadmin, and come up with a list. The more the merrier. Keep that handy while you're learning, and don't let your training end without learning how to accomplish those tasks in a linux environment. Don't settle for the gui way either. You'll save yourself a lot of time and work in the long run if you learn the command line and some shell scripting, plus you'll make yourself more valuable to your organization.
Also, get your company to get you a subscription to one or more linux sysadmin-oriented publications. Sysadmin mag is pretty good, but I'm sure there are others out there.
Finally, network with other linux techs, whether it's through user groups, training, or some other means. It's a strong argument in favor of in-person training, just because you cant network as well during online or teleconference-style classes. Oh, one other thing -- be sure to explain to your superiors that "putzing around on slashdot" == "hard at work". Good luck!
Yes, my only tool is a hammer. And you're starting to look like a nail.
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.
I run several machines at home, one of them is a gentoo machine. I like Gentoo, but it will *not* teach you much about being a system administrator. It will teach you about some basics about linux (installing one, to be specific), which I don't believe have much to do with sys admin. For example, bootstrapping your kernel. During the gentoo installation, that's just one command, you run the bootstrap script (I believe it was bootstrap.sh), and off it goes (for the next few hours). You don't really learn anything from that except typing in that "bootstrap" command.
I recommend that you read about real TCP/IP networking, as most Windows sys admins I know don't have the correct knowledge about networking (they only know it in Microsoft terms). O'Reilly's TCP/IP Network Administration is a good book, so is Linux TCP/IP Network Administration by Scott Mann.
Get comfortable with command line. I know many Windows sys admins who fear the command line tools. Most linux programs now have GUI counter parts, but to really get the most out of a tool, command line is still your best friend. It also will make remote administration a lot easier for you.
Find out what distribution you will be using, and join the user mailing list(s). Also get familiar with package management of your choice (RPM, DEB, or source). As a sys admin, you will quickly find out that custom compiling everything will become a nightmare to maintain. For me, I build everything into RPMs, even if it's just a single file script. This makes administering multiple machines much easier.
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
It will be foolish to think that you can take one course or one training program and be just as proficient in Linux as you are in Windows. Make sure your bosses realize this. (I've been in places where they send you for a week of training, then say, "Here you go, you're an expert now. You take care of it."
There are lots of good suggestions so far. I personally recommend multiple-approach solution:
1) find a local Linux Users Group and get involved
2) seek out the certification you think is best, such as the Red Hat. Has SAGE ever finished their certification program? Sure, a cert is worth the paper it's printed on, but if you're serious about learning (rather than just getting by), it will provide you with a solid foundation.
3) set up a small network at home. Get a domain, and set up servers for mail, web, etc. See how quickly you get hacked, and learn how to prevent it. Get internal services like print servers, samba, file services, authentication, etc working. Will you be doing a mixed environment at work? Make sure your linux network can serve to your windows boxes
4) someone suggested a "city" at work. this is like your home network, but maybe can mirror better the work environment
5) see if your local community college or university has a unix course. It can be a great way to learn some basics about how a unix system is laid out and give you an intro to scripting.
As for distros, I would advise using a common one that you can easily find help for. Fedora Core, Mandrake, Suse, Slackware, to name a few. Has your work settled on the one they'll use? Start with that one.
Watch websites like rootprompt, and subscribe to magazines like linux journal, etc.
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
If you come from a windows background, and have a few years of experience, the biggest hurdle you face is not learning the technicalities of linux, but getting a grip of the overall unix philosophy.
...) is a diffeent beast. The main concept you'll need to grasp is that programs and utilities have a limited scope by design. That's unix atomicity : one program that does one and only one thing, but does it well. Every single utility is a lego building brick that you'll use time and over again in various circumstances (especially in shell scripting)
The worst error someone in your position could ever do is learn linux system administration, then "try to do the same thing" as was done using windows.
Linux (and unix, bsd,
That alone is very diffrent from windows 'all-in-one', monolithic, approach.
I strongly suggest you get involved in your local linux user group. Helping out people solve basic problems and mixing with more experienced admins is a very good way to learn the non purely technical aspects.
Take their distro agnostic Linux courses. I have never been better educated than by IBM (That was in the OS/2 days)
Anyway, the disto agnostic approuch seems more usefull to me than a red hat cert.
"/Dread"
In addition to choosing a difficult distro to start with, pick up an older unix book. Something mid-80s or earlier. Why? Those books have more useful commandline tricks, simple stuff that is often overlooked in the modern day age of pointy-clicky. Scrounge your used book stores for a copy of "A Practical Guide to UNIX System V" for starters. I also scored a whole accounting box full of HP-UX manuals awhile back, many many neat tricks, mostly forgotten shell script kung-fu. You'll quickly pick up what still works and what doesn't. Basic commandline zen goes lightyears, especially if you plan to work with other variations of *n?x...
Hell, just install FreeBSD and bookmark the online handbook...
When encryption is outlawed, ou++1!@(93j++js-d9298yIUH(*Y24JKB!~
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
SAIR
I would recommend you start with Gentoo and move to Debian or Suse.
Before I'm modded flamebait, here's why:
1)Gentoo has some of the best install documents in the Linux community
2)It requires that you set up a lot of things by hand (system logger, kernel if you choose expert, etc)
3)It has some of the best forums/support around. Even Gentoo critics admit this.
After you get gentoo working on your box, wipe it and reinstall. After the fourth or fifth time, you'll actually have learned something. Then wipe and install Debian:
1) Debian has the largest volunteer following.
2) Deb has one of the simplest updgrade paths
3) If you choose stable, its old but very secure.
4)Suse is pretty darned awesome, too.
5)Then make a customized patched kernel for the heck of it.
Just my two cents. I took the Gentoo->Debian Road for the simple reason of learning and it helped.
There is a Universal Life Value Check it
Along with other /. recommendations, I suggest the user install a Unix toolkit on his Windows workstation at work. Then he can experiment with Unix/Linux tools in a "friendly" environment as well as compare them to Windows commands.
In particular, I suggest the user becomes familiar with the vi editor, as it will be required for many tasks, and is the most difficult of the basic sysadmin skills to master.
Having just gone through your exact situation, I feel at least somewhat qualified to give my opinion. I found lsf to be very useful. If you are like me (just in my forties) then you probably have some ancient experience with the DOS command line. I would strongly recommend going cold turkey and not using the GUI in whichever distro you choose as your learning environment. I also strongly recommend a subscription to the O'reilly safari bookshelf and the following three books: the infamous 'cowboy' book, "running linux" and the pocket guide of same, and the "essential system administration' pocket reference. I fouund the sys admin ref book to be especially useful because of it's task based format. This is stuff that we do on a daily basis with a straightforward way of doing it. Anyway, just my two cents. Best of luck to you.
I'm not here anymore, but I'm still not quite all there
ls
cd
mv
cp
man
Start with "man man". Most important man variation is "man -k someconcept" - eg, "man -k kernel". This will show man pages that purportedly have something to do with someconcept (in reality, that have "someconcept" as a substring in their description).
These 5 commands can help bootstrap anyone on a linux or unix system (unless you are so unfortunate to have a box that does not contain man pages).
sloth_jr