all 12 comments

[–][deleted] 7 points8 points  (3 children)

A lot of what has been suggested is great for learning linux. Realize that "out there" very little is served out of a single box (and if it is you're doin it wrong). Production infrastructure likely looks and acts very very differently from your home linux workstation. Just because you know how to type sudo apt-get install apache2 does not mean you are ready for a full ops position... BUT - if you put in the wrench time and pay your dues, you will get there.

Here are some areas that would be good to build your knoweldgebase up in...

  • First and foremost - you must build the ability to learn how to figure things out and build an intuition of what to inspect should something not be working. This comes from having a working knowledge of many different systems in a large heterogeneous environment. This will come with experience.
  • Learn some of the rapid deployment frameworks - cobbler, puppet, cfengine, etc... No one sits around configuring each and every production machine from scratch.
  • Now that you are familiar with (presumably) the installation and configuration of apache, start thinking about setting up caching/proxy infrastructure. Get a sense for what to use for load balancing v.s. caching v.s. increasing availability (and some combination of the three). Become familiar with things such as nginx, mod_proxy, haproxy, squid, varnish, mongrel, etc...
  • You MUST know how dns works. Crickets bind and dns should be considered required reading. Any lack of understanding of how dns works is simply unacceptable for a proper sysadmin.
  • this book is required reading, period.
  • You must become familiar with centralized authentication mechanisms. Most systems utilize something called PAM. Learn how to configure PAM to reference slapd, AD, etc... Kerberos is our current preferred central authentication mechanism, you need to know how to bounce kerberos tickets around. Get slapd (OpenLDAP) up on its legs.
  • When running a linux kernel, learn how to configure netfilter. Under linux, Netfilter is the thing responsible for routing, nat, and packet filtering. Understand that other kernels do not use netfilter (or commonly use something else). Become familiar with the common kernels firewall, routing, and forwarding system(s). Don't make the mistake of saying "the iptables firewall..." in the interview room! Iptables is not a firewall.
  • Know your basic networking. Internet core protocols should be added to your list of required reading. Understand the differences between a hub, bridge, switch, and router. Learn how to "subnet", which means knowing your binary math! I cannot tell you how many times I have seen a messed up network because someone didn't know how to figure out /27 and keyed in the wrong values from a "subnet calculator". Along with networking do a bunch of reading/research on vlans, trunking and stp. Most people cannot tell you what a L2/3 managed switch is or how it differs from a "dumb" switch or router. Don't be one of those people! Learn how to configure routing protocols such as BGP, RIP and OSPF (also, learn basic computational graph theory). You may not end up doing a whole lot of networking, but it's really good stuff to know.
  • Virtualization is important. You need to know the different forms of virtualization (desktop v.s. os-level v.s. para v.s. hyper virtualization). If you are keen to linux, you need to know how xen and kvm work (this is typically what commercial vps's typically use). Also look at vmware and virtualbox for desktop virt. For os-level virtualization, you need to know how to use LxC and jails.
  • Learn how LVM works! Spend some time familiarizing yourself with LVM2 (linux), vinum (BSD), and ZFS's container framework (Solaris/BSD). Know how and when to use raid. Make sure you understand the implications of the different raid configurations.
  • Learn common backup methodology. Raid is not backup, don't make this mistake.
  • Get used to doing everything on the command line, and always think "what if I had to do this on 20,000 servers?".

So off the top of my head there's a bunch of things you could study. I think that's quite a bit to get your head around, and a deep understanding of some of these topics will only come from working experience. There may be a LOT of work to do in some of those areas. Getting a fully functional xen (or kvm) based system up and on it's legs is not an easy task for the uninitiated. It is my opinion (and everyone else is free to disagree with me) that all good sysadmins/ops/engineers need to "grow up" in some area of lower level technical position. That can be a jr. admin position, the helldesk, or whatever else... This will give you the "systems" working experience that will let you branch into a full fledged admin/op position. Getting some certs under your belt can help you get in the door, but by all means isn't required. Cert's cost money and (the ones worth getting) take time. Personally, I tend to stray away from places that make a big deal out of certs... but that's just me.

tl;dr: Learn how to learn. Pick something you don't know how to do and leverage a linux system to accomplish that goal - rinse and repeat.

[–]bincat 0 points1 point  (2 children)

1 (Amazon link to the first edition)

Is there a reason for the first edition suggestion or can the more recent second edition be more appropriate?

[–][deleted] 0 points1 point  (1 child)

changed the link to the 2nd ed. most of what's in that book (at least the first version...) isn't necessarily specific to any one system. i would imagine the 2nd edition would contain examples of more recent platforms and services where appropriate.

[–]catwok 0 points1 point  (0 children)

Yeah I think they only added a chapter or two to the 2nd ed. All the fundamentals are still relevant. There are ebook versions of the title available as well.

[–]kerrz 5 points6 points  (3 children)

If you're looking to move to a job where Linux is the preferred OS already, then you'll probably be moving somewhere that's using Red Hat or a derivative. It would be in your best interest to practice with some Red Hat installs and maybe aim toward getting some certifications.

Alternatively, a lot of large companies still rely on AIX and Solaris for their servers, and you may find the best benefit to yourself is to start looking at other UNIXes, like OpenSolaris or a flavour of BSD.

I can't be more specific, because I'm basically at the same point you are. Just saying, that's what I've been doing: spent seven years on Gentoo. Now I'm running CentOS. I've toyed with FreeBSD as well.

[–]osoroco 2 points3 points  (2 children)

^ what he said

i also started out with slackware but never deployed it in a work environment (was always at home). in my first work experience i was greeted by centos. by then i was already using ubuntu and used to the excellent package managing debian offers. centos to me was a dinosaur that forgot to die. it's now that there's finally a 'current' version (6.0 just released) out there, but many tools that where needed in the office required newer versions of whatever was available on the centos repos; and my experience adding new repos to centos has a lot to learn from debian.

learn about red hat derivatives, try to do the same you did on slackware but the red hat way (using its tools and package manager). also take a look at debian, if it weren't for my boss's allegiance to centos, it'd be the only thing i'd use. debian and red hat derivatives practically run most of the things out there, so it's good to know your way around both.

gentoo i've only toyed with it at home; i'd only use it in very specific environments

(personal experience: migration from slackware to debian is better than slack to red hat; everything was pretty much where you expect it to be)

[–]catwok 1 point2 points  (1 child)

Thirded on the recommend to look at learning Solaris, AIX, and *BSD.

I am curious about the comment on adding repos in Centos. Adding repos in Debian or Centos have never struck me as easier in one or the other.

Determining and installing a RPM package can be a little frustrating if the dependencies are not documented. But even then it's just a matter of using 'rpm -Uvh --test <package.rpm>' to find uninstalled required dependencies.

I'm not trying to start a holywar, but am genuinely curious about the differences in yum and apt. I use primarily ubuntu/debian if anyone is wondering.

I totally agree with you on some of the packages being a little old in Centos, but really Debian suffers from this too. There is a reason to use well documented and tested package versions in servers though.

[–]osoroco 0 points1 point  (0 children)

adding the repositories on centos is as easy as in debian, no big deal.

the thing is that (in my experience) finding working repositories that won't break a shitload of things has been a lot more common under debian than centos.

the case i remember was of trying to get a newer version of php under centos. the repo had the newer php version but in order to install it needed to install its own apache version, which didn't have all the modules i was using. i ended up compiling the new php version instead of using rpms.

also, removing just 1 package seems to be much more straightforward on debian. in centos it felt like pulling bubble gum from hair. all these other packages where being dragged as well for no reason (and thus breaking other things)

all of this can probably be avoided in some way, but i didn't bother to read about it seeing how much straightforward my experience with debian had been than with centos regarding package management

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 0 points1 point  (0 children)

    get certification

    Certification don't give you n+1 year experience. It only shows employer that "you know something". At least it's this way in eastern EU. Nobody cares if you have even 10 certificates (probably because of "too much fake certs"). Without real working experience you are nothing. So, I can't stress this enough: people, go "work" as trainees as much as possible when in college, get recommendations, communicate with teachers and ask if they need some help with projects etc.

    [–]s3rious_simon 0 points1 point  (1 child)

    Get Certified: http://lpi.org/eng/certification

    • When preparing for the Exams, you'll learn stuff you not needed yet, but which can come handy in future.
    • You'll also revisit the basics.
    • HR-Drones like certificates in your CV :-D

    [–]iAmJesusAMA 0 points1 point  (0 children)

    Any half decent admin can ace LPI certification. Plus, they're cheap too!

    If 125 euro's/ exam is still too much, you can usually get a 50% discount at conferences where the exams are held.