I had an article published on the Netflix Tech Blog. Applying Netflix DevOps Patterns to Windows
My own special version of Hush Little Baby. Hush little baby, don’t say a word. Daddy’s gonna buy you a mockingbird. If that mockingbird doesn’t sing, daddy’s gonna buy you a golden ring. If that golden ring turns brass, daddy’s gonna buy you a looking glass. If that looking glass does break, daddy’s gonna buy you some roller skates. If those roller skates make you fall, daddy’s gonna buy you a bouncy ball.
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. FROMmono:3.12.1MAINTAINERJustin PhelpsRUN apt-get update && apt-get install -y wget unzipWORKDIR/usr/local/src/chocoRUN wget https://github.com/chocolatey/choco/archive/stable.zipRUN unzip stable.zipRUN rm stable.zipWORKDIR/usr/local/src/choco/choco-stableRUN chmod +x build.shRUN chmod +x zip.shRUN ./build.shWORKDIR/usr/local/binRUN ln -s /usr/local/src/choco/choco-stable/build_output/chocolateyCOPY choco /usr/local/bin/chocoWORKDIR/rootIn the same directory as the Dockerfile, place a file called choco with executable permissions.
MeetUp Link Slides
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.