Posts
Update: This docker image is now available on the Docker Hub as linuturk/mono-choco .
Do you want to create Chocolatey packages but don’t want to run a Windows server? Use this Dockerfile to build Chocolatey and do your package development without a Windows system.
FROM mono:3.12.1
MAINTAINER Justin Phelps
RUN apt-get update && apt-get install -y wget unzip
WORKDIR /usr/local/src/choco
RUN wget https://github.com/chocolatey/choco/archive/stable.zip
RUN unzip stable.zip
RUN rm stable.zip
WORKDIR /usr/local/src/choco/choco-stable
RUN chmod +x build.sh
RUN chmod +x zip.sh
RUN ./build.sh
WORKDIR /usr/local/bin
RUN ln -s /usr/local/src/choco/choco-stable/build_output/chocolatey
COPY choco /usr/local/bin/choco
WORKDIR /root
In the same directory as the Dockerfile, place a file called choco with executable permissions. The content of this file should be:
A common problem with building multiple servers in the cloud is an intermittent failure in one build that can stop your entire deployment process. With the right retry logic you can avoid this problem with Ansible.
I’m using until to check the output from the rax module. Using the length Jinja2 filter, I can check if the correct number of instances have been created. This should retry the task 3 times with a delay of 5 seconds between attempts.

I was fortunate to receive a review copy of The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan. The following is my review of this book based on my limited experience with Golang.
I’m new to Go. I’ve only been through the excellent Tour of Go . This Tour gives you a great hands on trial of Go but leaves out some of the more complex topics that are covered by Donovan and Kernighan’s book. I’ve made it through Chapter 5 which covers functions in detail. The book is well written and fairly easy to read but the subject matter can get quite dense at times. It takes dedication to read and may require you to look up concepts or terminology.
I’ve done a search and there seem to be a large number of issues related to salt-ssh usability with non-root users. I’d like to understand more about the perceived use case from Salt’s perspective and give some feedback.
Perceived use case
salt-ssh seems to be an answer to Ansible and Fabric where the ssh transport from a single laptop is useful for a system administrator to maintain a smaller set of infrastructure. My use case would be running from a virtualenv after pip installing salt-ssh. I would typically create a folder for a set of infrastructure and states. If I was executing the command from this directory I expect salt-ssh to look in this working directory for things like rosters and configuration files. The next place would be a folder ~/.salt-ssh folder in my home directory. I would expect cache directories to be automatically created in that location. The final location would be the system wide settings in /etc/salt.
