sntxrr / sysadmin-reading-list

Reading list for the larval stage sysadmin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sysadmin-reading-list

Build Status

A reading list for the larval stage sysadmin. This list is focused on the UNIX family of OSes.

Table of Contents generated with DocToc

So you've got your first sysadmin job. Congratulations, it's going to be an interesting ride.

Books to Read

Languages

Bash

Every sysadmin needs to know Bash.

  • Bash Pitfalls - Greg Wooledge has a great list of unpleasant surprises in Bash
  • Learning the Bash Shell - hard to go wrong with an O'Reilly reference on anything, really.
  • Google's Shell Style Guide lists what Google's developers consider best practices for bash scripts.
  • shellcheck is a lint for bash. It'll help you find unused variables, deprecated syntax and other things that make your bash scripts less stable. You can install it with apt-get, brew, cabal, or yum.

Ruby

If you're in a Ruby shop, you'll want these:

Python

As of Python, compared to bash, you will love it's higher support towards string manipulation and system infrastructure.

A couple of places to go into as training would be:

Tutorials @ Python

Python & Sysadmin

Python & Deployment Utils

Tools

Cloud

AWS

  • AWSCli provides a unified command line interface to Amazon Web Services. Wean yourself off of the webui if you want to be truly productive
  • S3cmd is a free command line tool and client for uploading, retrieving and managing data in Amazon S3 and other cloud storage service providers that use the S3 protocol, such as Google Cloud Storage or DreamHost DreamObjects.
  • og-aws is an excellent resource to AWS written by and for engineers who use AWS extensively.

Azure

Configuration Management

Quite simply, if you aren't using configuration management, you're doing it wrong.

You don't want to manually configure any servers - no matter how hard you try, they won't end up truly identical and having meat typing in commands takes far too long per server, doesn't scale, and the manual labor will discourage you from standing up new VMs for testing.

There are several good options:

  • Ansible is designed to be minimal in nature, consistent, secure, and highly reliable. Was recently purchased by Red Hat.
  • Chef is written in Ruby and Erlang and uses a Ruby DSL to describe system configuration
  • Puppet makes it easy to automate the provisioning, configuration and ongoing management of your machines and the software running on them. Make rapid, repeatable changes and automatically enforce the consistency of systems and devices – across physical and virtual machines, on premise or in the cloud.
  • Salt orchestrates the build and ongoing management of your infrastructure.

Regular Expressions

Among the many places you're going to find regexes very useful for is handling logs. When you have a multi-gigabyte logfile, it's a lot less painful to look at just the entries generated by the service that you got alerted about.

Sed & Awk

  • sed and awk Pocket Reference presents a concise summary of regular expressions and pattern matching, and summaries of sed and awk and how to use them to edit files and convert data from one format to another.

Source control

No matter what source control you use (git, hg, perforce, whatever), you're going to have to write commit messages. Make them good. Explain why you made the change, not just what you changed. And no, the diff is not an explanation.

Good commit messages help the rest of your team understand what you're trying to do and make it easier for them to find logic errors in your pull requests - the code may be technically correct, but if they understand what you're trying to do, they can see when your code isn't actually doing what you want it to.

Here are a few articles that while focused on git apply to any system you're using:

Git

Whether or not your shop uses git internally, you're going to end up needing to use it for the many useful things on GitHub.

SSH

Text Editors:

Don't get involved in the Editor Wars. Just. Don't. Your choice of tool does not need defending. Nor does anyone else's choice.

However, you should care about your tools. You should be able to use them efficiently.

Vim

Vim is a reality of life for SysAdmins. It is the one editor you can be sure is installed in even the most minimal install. You must be able to do at least basic edits with it. You don't need to love it, but you will have to use it.

Emacs

Many people like Emacs. You might be one of them. Don't be afraid to try it out.

Visual Editors and IDEs

Use tools with which you are productive. If you want to use a GUI Text Editor or IDE, don't let anyone give you a hard time about that.

There are GUI versions of vim and emacs that have ardent followers.

Atom is a fairly new editor with significant traction and plugin ecosystem. Sublime Text is another editor with an extensive plugin ecosystem and arguably one of the inspirations for Atom.

Blogs and Podcasts

  • Arrested Devops is hosted by Matt Stratton, Trevor Hess, and Bridget Kromhout. ADO is the podcast that helps you achieve understanding, develop good practices, and operate your team and organization for maximum DevOps awesomeness.
  • Code as Craft is Etsy's ops blog and is full of well written examples of dealing with real-world problems at scale.
  • Julia Evans' Blog - Julia writes a great blog where she'll dive into interesting topics and explain them clearly.
  • Kitchen Soap - John Alspaw is the CTO at Etsy and writes a great blog about web operations and operating at scale and other things that are interesting to ops types.

Other Resources

About

Reading list for the larval stage sysadmin

License:Other