Category Archives: Tips

Manage Multiple AWS Accounts Using Direnv

Mad Hacker SkillsI came across a simple yet elegant means of managing multiple Amazon Web Services credentials when using the AWS CLI. This way does not make you have to hack your .aws/config and is the simplest/cleanest way I have found.

First install direnv and make sure it is in your PATH.

Be sure to remember to add the hook to your shell of choice as they outline in their README.

Now that you have direnv setup we can configure it for each client.

I use a directory structure to keep each client in their own directory.

So for example in : .../clients/ACME/ I make a .envrc file and export my AWS keys in it:

export AWS_ACCESS_KEY_ID=****
export AWS_SECRET_ACCESS_KEY=***

Once you make your .envrc file run direnv allow to enable using the config. Then test your AWS CLI to insure working properly.

Then when you are doing work on that client’s account you simply have to cd into their respective directory.

Be sure to either encrypt the whole directory or at least chmod 600 the .envrc files to protect your keys.

 

Managing Multiple Clients on Different Messaging Apps

info_overloadI deal with a lot of different clients on a daily basis. It is a bit of a chore to figure out how to tie together their different messaging apps in order to interact with them and be alerted of any needs or emergencies.

The Problem

Most clients nowadays use either Slack, HipChat, Google Hangouts, and Skype. With Slack and HipChat being most popular in my regards. The main issue I have is that I use Linux and the Slack web interface is a resource hog and can only monitor one client at a time. Whichever one is loaded at the time. The HipChat web interface is a bit lighter but the same issue persists as with Slack.

The Solution

Luckily with Slack you can enable either (or both) XMPP and IRC. With HipChat you can only enable XMPP.

For Slack you go to Admin Settings and enable both or your choice:

Admin Settings | Tarnover Slack 2016-07-21 12-52-29

Continue reading

Tips: Managing Many Servers via SSH

I manage many servers in my line of work and have found a few things to make life a little easier when it comes to SSH’ing into them when I start my laptop up.The first of these is maintaining an up to date ssh config file which is kept in ~/.ssh that allows me to alias the server address and key. A basic entry in the config file would be for an Amazon Web Services EC2 instance:

Host prod-servername01
HostName ec2-184-88-888-88.compute-1.amazonaws.com
User someuser
IdentityFile /.ssh_keys/servergroup.pem

Once you have all your servers in the config file I create a very simple script to start gnome-terminal with each group of servers:

gnome-terminal --tab --title=prod-servername01 -e 'ssh prdo-servername01' --tab --title=prod-servername02 -e 'ssh prod-servername02'

From the above example you can get the idea of adding more tabs for each additional server. I then create desktop or menu shortcuts for each grouping of server to launch a terminal and ssh into all in the group.