Couple of days ago we have workshop in Warsaw - this event was 100% dedicated to Windows Azure and open source technologies - all about Microsoft interoperability and OSS story in cloud. On this event we invite community influencers from all around Central and Eastern Europe - we have folks from Latvia, Cyprus, Russia, Poland, Czech, Ukraine, Belorussia and Romania. During this training we have deep technical sessions about Linux, Java, running and managing IaaS resources by using different SDK and REST API as well. Hands-on experience may be very important as one the best way to try technologies from development point of view and we have a lot of this kind activities - many attendees made their small apps as homework ( before or after event ). Another great thing which happened is that we have online workshops with other people from Microsoft who was involved in this event as speakers doing their presentations online - so many thanks to Brent Stineman, David Makogon and Thomas Conte for their great job.

 

After this event I would like to share examples of deployment scripts written on different languages (python, bash, CoffeeScript, PHP and nodejs ) and originally they should do quite simple thing - run Linux-based VM, install Apache ( or any other web server ), check that all things are work ( by http get request which should return something (not like time out error :-))  and then shutdown this VM. I believe that this kind of easy scripting things may be useful for other. So here they are :

Interesting thing is that you should keep in mind that after you made creation of virtual machine you had to wait some time until it will be really started - you may check status chaning from 'pending' to 'running' for example this way:

while True:

    props = sms.get_deployment_by_name(service_name, deployment_name)
    stat = _get_role_instance_status(props, role_instance_name)
    if stat == 'ReadyRole':
        break

Another thing that even after status is running it may be required some time to start SSH daemon on this Linux VM - so if you try to ssh and failed right after start please use some retry logic with delay ( 30 secs should be enough I sure, but some people add 180 seconds delay, which is too much from my point of view ). By our experience usually vm starting and ready to use via ssh in 2-3 mins from start.

Hope that these scripts may help others with Windows Azure command line tools and REST API - so you're welcome to use these scripts ( please don't forget that these guys shutdown VM at the end - I believe that you will need to remove this part if you will use these guys in real application ), give feedback to their authors. Join us in Facebook , follow us on Twitter and see you next time on open source events!