Drupal Camp St. Louis 2017 is a wrap!
The St. Louis Drupal Users Group ( STLDUG ) just finished it's fourth Drupal Camp , held at UMSL yesterday. I had a great time meeting with everyone, and am excited for next year! Last year I had to miss the Camp due to unexpected surgery, but this year I was able to attend and even bring some of my photo gear, to take pictures (I love contributing to open source through means other than code!); here's the obligatory 'whole camp' photo:

You
Using MaxMind's free GeoIP databases with the official Docker PHP image
I recently had to add support for the MaxMind free GeoIP database to a PHP container build that was based on the official Docker PHP image on Docker Hub. Unfortunately, it seems nobody else who's added this support has documented it, so I figured I'd post this so that the next poor soul who needs to implement the functionality doesn't have to spend half a day doing it!
First, you need the PHP geoip extension, which is available via PECL (note: if you can make the
Patching or using a forked version of an Ansible Galaxy role
I maintain a lot of Ansible Galaxy roles. I probably have a problem, but I won't admit it, so I'll probably keep adding more roles :)
One thing I see quite often is someone submitting a simple Pull Request for one of my roles on GitHub, then checking in here and there asking if I have had a chance to merge it yet. I'm guessing people who end up doing this might not know about one of the best features of Ansible Galaxy (and more generally,
Get started using Ansible AWX (Open Source Tower version) in one minute
Since yesterday's announcement that Ansible had released the code behind Ansible Tower, AWX, under an open source license , I've been working on an AWX Ansible role , a demo AWX Vagrant VM , and an AWX Ansible Container project .
As part of that last project, I have published two public Docker Hub images, awx_web and awx_task , which can be used with a docker-compose.yml file to build AWX locally in about as much time as it takes to download the Docker images

Ansible open sources Ansible Tower with AWX
Ever since Red Hat acquired Ansible, I and many others have anticipated whether or when Ansible Tower would be open sourced. Ansible Tower is one of the nicest automation tools I've used... but since I haven't been on a project with the budget to support the Tower licensing fees, I have only used it for testing small-scale projects.
I wrote a guide for Automating your Automation with Ansible Tower , and it's both on the web and in Chapter 11 of Ansible for DevOps

Git gives 'ERROR: Repository not found.' when URL is correct and SSH key is used
I had a fun problem that made me spin my wheels an hour or so today. I was having no issue cloning a remote repository a number of times in the morning while debugging a Jenkins build job that runs a git clone + Docker image build and push operation.
Suddenly, when I was doing some final testing, I started to get the following:
git clone [email protected]:geerlingguy/my-project.git Cloning into 'my-project'...ERROR: Repository not found.fatalQuick way to check if you're in AWS in an Ansible playbook
For many of my AWS-specific Ansible playbooks, I need to have some operations (e.g. AWS inspector agent, or special information lookups) run when the playbook is run inside AWS, but not run if it's being run on a local test VM or in my CI environment.
In the past, I would set up a global playbook variable like aws_environment: False , and set it manually to True when running the playbook against live AWS EC2 instances. But managing vars like aws
Reverse-proxying a SOAP API accessed via PHP's SoapClient
I'm documenting this here, just because it's something I imagine I might have to do again someday... and when I do, I want to save myself hours of pain and misdirection.
A client had an old SOAP web service that used IP address whitelisting to authenticate/allow requests. The new PHP infrastructure was built using Docker containers and auto-scaling AWS instances. Because of this, we had a problem: a request could come from one of millions of different IP addresses, since the
Apache, fastcgi, proxy_fcgi, and empty POST bodies with chunked transfer
I've been working on building a reproducible configuration for Drupal Photo Gallery , a project born out of this year's Acquia Build Hackathon .
We originally built the site on an Acquia Cloud CD environment , and this environment uses a pretty traditional LAMP stack. We didn't encounter any difficulty using AWS Lambda to post image data back to the Drupal site via Drupal's RESTful Web Services API .
The POST request is built in Node.js using:
var reqPost = http.request(options_post,Self-signed certificates via Ansible for local testing with Nginx
Most of my servers are using TLS certificates to encrypt all traffic over HTTPS. Since Let's Encrypt (and certbot) have taken the world of hosting HTTPS sites by storm (free is awesome!), I've been trying to make sure all my servers use the best settings possible to ensure private connections stay private. This often means setting up things like HSTS , which can make local / non-production test environments harder to manage.
Consider the following:
- I go to https://servercheck.