Setting up CI/CD Pipelines course

I’ll be teaching “Setting up CI/CD Pipelines” at Ohio LinuxFest in Columbus on Sep 29th, and at USENIX LISA in San Francisco on Oct 31st. My colleague Mike Weilgart will be teaching Git Foundations: Unlocking the Mysteries at both conferences. We are available for training and consulting engagements.

September 15, 2017 · 1 min · Aleksey Tsalolikhin

Sysadmin war story: "The network ate my font!"

About 15 years ago, I was the only UNIX sys admin in a factory, and I was asked to help with a “network issue” which hit the Help Desk. The problem, it was explained to me, was that the network was eating the MICR font (Magnetic Ink Character Recognition – machine-readable font) on the checks. Look at the last line on the below check image for an example of MICR font. ...

September 13, 2017 · 3 min · Aleksey Tsalolikhin

What I learned at LISA 2016 conference

USENIX Annual Technical Conference and LISA are the first professional conferences I went to as a fledgeling sysadmin. USENIX will always hold a special place in my heart. I attribute my professional success to regular training at USENIX conferences. I really enjoyed LISA ‘16 in Boston. This year I exhibited, promoting our training services. I learned that people are looking for training on Machine Learning (Big Data) and on Go; and I got to show Tom Limoncelli a success story from my “Time Management for System Administrators” training at Ohio Linux Fest that I had received just that morning. ...

December 18, 2016 · 2 min · Aleksey Tsalolikhin

Setting up a Postgres Sandbox

I’m a fan of disposable sandboxes using Vagrant and VirtualBox. I’ve been using Postgres on the job for nearly a year, and a while back I decided it was time to have a dedicated Postgres instance on my personal computer, on a virtual machine, just to play around with. I’m using a Mac, but the steps below should work without change for Windows or Linux. Let me know in the comments if you run into any problems following these steps! ...

November 13, 2016 · 3 min · Aleksey Tsalolikhin

Bootstrapping CFEngine agent to a regional (AWS) hub

Hat tip to my DevOps buddy Joaquin Menchaca for this one-liner to find out what AWS region your VM is in: AWS_REGION=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone | sed -e 's/[a-z]$//') I am going to use it to bootstrap my Kubernetes VMs to the right CFEngine hub for their AWS region (i.e., to the local hub).

October 26, 2016 · 1 min · Aleksey Tsalolikhin

Looking up Postgres table name by id

When working with [TOAST][1] tables, I had the relid (relation or table id) of the parent table, and needed to get its name. Here is how to perform the lookup. For example, if the relid is 19665: SELECT relid, relname FROM pg_catalog.pg_statio_user_tables WHERE relid = '19665';

October 24, 2016 · 1 min · Aleksey Tsalolikhin

Safely updating /etc/sudoers non-interactively

I recently added my account to /etc/sudoers on N servers using Ansible in raw mode (running a shell oneliner). We use visudo to edit /etc/sudoers when we are logged into a server, but since I was doing this in “batch” mode I wanted to do it non-interactively but still have the benefit of the file-locking and syntax checking and rollback that visudo provides. So I set visudo’s VISUAL environment variable to my external command: ...

October 19, 2016 · 1 min · Aleksey Tsalolikhin

Introducing Infrastructure Inventory with CFEngine Enterprise

CFEngine Enterprise makes it absurdly easy to track deployed servers. All you have to do is spin up a hub, install the lightweight agent on each host, and run cf-agent --bootstrap <hub> to setup a trust relationship between hub and hosts. (If you need any help setting this up, let me know.) The agent will discover information about each host (hostname, address, OS version, disk utilization, packages installed, etc.) and the hub will collect and aggregate this data, so you can see at a glance things like, my OS inventory is 5% RHEL 4, 10% RHEL 5, 84% RHEL 6, and 1% RHEL 7. ...

October 5, 2016 · 2 min · Aleksey Tsalolikhin

CFEngine Inventory of Windows Server 2012

I am working on setting up a “reporting portal” CFEngine Enterprise hub to aggregate inventory from several hubs in different parts of a company (managed by different organizations). This one “superhub” would allows executives instant insight into infrastructure integrity. While demonstrating my prototype, an executive liked the idea of having data at her fingertips so much, she asked, can we put our Windows servers into CFEngine? I said sure, but CFEngine inventory on Windows is not as detailed as it is for UNIX and Linux. The next question naturally then is how detailed is it? ...

October 3, 2016 · 2 min · Aleksey Tsalolikhin

You think our training is expensive?

I charge US $3,000 per training day, plus a US $2,000 admin fee, to come on-site and train up to 12 staff using a training methodology that ensure that deep learning occurs. Some people have pushed back on the price as too expensive. As Red Adair, the firefighter specializing in putting out oil well fires, once said: “If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.” ...

September 8, 2016 · 2 min · Aleksey Tsalolikhin