Continuous Deployment with Ansible & Codeship

Published on May 31, 2015

If you are a developer and you like to automate the boring stuff as much as possible, these are two tools I highly recommend. I recently stumbled across a very strange problem that took some creative Googling to resolve. The problem occurs when I tried running my Ansible playbook (using Ansible 1.7.1) from the Codeship custom script to deploy my application.

 

The short answer is to follow this guy's example.

A little more detail might be useful, though. When running my playbook using the following command:

ansible-playbook playbook.yml --sudo -vvv

I received an error message from SSH.

SSH Error: debug2: set_control_persist_exit_time: schedule exit in 60 seconds

To resolve it, I was able to find some settings that would help. The issue appears to stem from the default transport configuration value Ansible uses. I just updated a couple of Ansible configuration settings and I was in business:

[defaults]
hostfile = hosts
sudo_flags=-H -E
transport=paramiko

That's the contents of my Ansible configuration file. I had to add that last line so the playbook would connect via SSH properly from Codeship.

Hopefully, I'll get more time to blog about my development activities, technology and learning in the future, but I wanted to make sure I captured this for other folks who might be facing similar issues.

If you've run across similar issues, comment below and let me know how you resolved it.


Peter Adams has been developing Web application using primarily PHP since 1998. He is now the owner and CTO of Ping! Development, a small Web design and development shop in Phoenix, AZ. In addition to programming, Peter enjoys many outdoor activities, especially mountain biking, and tries to travel on two wheels as much as possible.


Read More