Sandors Systems Scribbles

Notes about Systems & Infrastructure Culture

Hashicorp Nomad failed job with missing drivers

The Problem: Launching a job on Nomad fails with an error: [root@theargo ~]# nomad job run example.nomad ==> Monitoring evaluation "3ed6ecae" Evaluation triggered by job "example" Evaluation within deployment: "f2416c97" Evaluation status changed: "pending" -> "complete" ==> Evaluation "3ed6ecae" finished with status "complete" but failed to place all allocations: Task Group "cache" (failed to place 1 allocation): * Constraint "missing drivers" filtered 1 nodes Evaluation "d88ac9d7" waiting for additional capacity to place remainder The solution: Verify that Docker is installed on the Nomad agent node and that the user configured to run Nomad jobs has permissions to run Docker.

Git push to two remotes

The Problem: Need a way to share code hosted in a private GitLab repo publicly on GitHub. The solution: Use a second Git remote to share a private Git repo publicly on GitHub. Backstory: GitLab with its free unlimited private repository hosting and CiCd services offers a great place to host Git repos and build code. GitHub is the defacto home of Open Source code repositories and is also a great way to add to a resume by sharing projects publicly.

Configure new servers with the basics via Ansible

The Problem: You have a throw away server that you only need for the next couple of hours to try something out. You need the server configured so that you can login and get to work without messing with yum updates or adding your user and public ssh keys to access it. The solution: This Ansible playbook that is simple and to the point. It updates yum or apt, applies a sane sshd config, adds users and groups and then gets your public ssh key onto the throwaway box so you can login without a password.

MacBook Setup Using Ansible and Homebrew

The Problem: You have a brand new fresh install of OSX on your MacBook and you need to get up and running. You want all your apps installed using Homebrew & Cask and OSX setup with goodies like zsh and .dotfiles. The solution: Use Ansible to deploy CLI apps via Homebrew and GUI Apps via Cask. Then have Ansible setup the shell with zsh and .dotfiles that are pulled from a GitHub repo.

Deploy AWS Redshift into a dedicated VPC on the EC2-VPC platform

The Problem: The Problem - By default new AWS accounts are based on the EC2-VPC platform. If you want to launch a Redshift cluster into a specific VPC that is not the default you must first create a Redshift Cluster Subnet. The solution: Create a Redshift Cluster Subnet that will be joined to a existing VPC (not the default VPC) which will then allow the new Redshift cluster to be launched into that dedicated VPC.

Deploy Wordpress to AWS Beanstalk using eb

The Problem Wordpress has lots of hosting options all of which cost money to be on a shared hosting server. I need a autoscaling & auto-healing Wordpress setup that will cost less than dedicated WP hosting while offering all the awesomeness of AWS. AWS is hard to setup all the moving pieces correctly, Beanstalk configures all those pieces while costing nothing other than paying for the AWS resources Beanstalk sets up.

Ansible on HP-UX 11.31

The problem Old corporations that are running ancient OS’es desperately need configuration management and automation to keep the dinosaurs efficient. The goal Install Python on HP-UX so Ansible can manage and automate the ancient servers. HowTo sandor@theargo> ansible -i hosts all -m raw -a "swinstall -x mount_all_filesystems=false -s depotserver:/depot/11.31/python python"

Run Ansible through pmksh

The problem Old corporations use shitty old software to do things that modern Linux is really good at doing itself. Using pmksh instead of a well laid out sudoers setup is what the problem is. The goal Configure Ansible playbooks to execute through the pmksh shell on the targeted servers. Shells & Ansible Currently Ansible & Python work together to take the output from bash and report back with formatting.

Using Ansible to Align Passwords on Servers

The Problem: A group of servers get their passwords updated every 3 months with a new shared password. The servers passwords are then inconsistently updated leaving a group of servers with one of several possible user passwords. The Goal: Use Ansible to attempt to login to each server using each of the possible passwords to find the correct one and log it. The final step of the playbook will have Ansible logging into each server using the found to be correct password and updating each server to a new shared password.

Installing Ansible

The Problem Need to deploy an Ansible Controller to run Playbooks from that uses the latest build and is easy to upgrade/configure. The Solution Install Ansible from the latest release on GitHub. The Goal Create an Ansible Controller directory that will run the latest version via git clone and setup the shell with the Ansible environment scripts. Clone the Ansible repo Go to the GitHub project page github/ansible Choose a release version or the dev branch and clone.