May 2016 Archives

Playing with Docker and Sparrow

Docker is quite popular solution to rapidly spin up developers environments. I have been playing with it and it seems fun for me. The other fun thing I found that Sparrow could be a good solution to build up new docker images.

Here is short example of how it could be. A few lines in Dockerfile and you have a GitPrep server up and running as docker container. Whew!

Here is my Dockerfile:

FROM perl:5.20
RUN apt-get update
RUN apt-get install sudo
RUN apt-get install git-core
RUN cpanm Sparrow
RUN sparrow index update
RUN sparrow index summary
RUN sparrow plg install gitprep
RUN sparrow plg run gitprep
CMD sparrow plg run gitprep --param action=start --param start_mode=foreground

I base on official perl docker image and then let all the job to be done by sparrow gitprep plugin!

This is how one can use it:

$ git clone https://github.com/melezhik/docker-projects.git
$ cd docker-projects/gitprep

Build an image with target melezhik/gitprep or whatever you want. You probably will need to run this command more than once if meet "Installing the dependencies failed: Installed version (1.636) of DBI is not in range '== 1.634'" error.

$ sudo docker build -t melezhik/gitprep .

Run gitprep server

$ sudo docker run -p 10020:10020 -d -i melezhik/gitprep

Test it!

curl 127.0.0.1:10020

Installing docker engine on Ubuntu Trusty 14.04 (LTS) using sparrow

While playing with docker I created a simple sparrow plugin to install docker engine on Ubuntu Trusty 14.04 (LTS) - https://sparrowhub.org/info/docker-engine . Please let me know if other platform to support you need! ;))

sparrow-docker.png

Sparrow plugins development tutorial in Russian.

Sparrow plugins development tutorial in Russian. https://habrahabr.ru/post/300876.

Sparrow project highlights

Hi!

It seems Sparrow project is getting stabilized with version 0.1.*, I don't think I am going to change API radically in the future ... The same for Outthentic which accordingly hit version 0.1.* as well.

So to sum things up:

  • Outthentic - is multi purposes, multi languages scenarios framework. You choose between one of the three options when writing scenarios on Outthentic - Perl, Ruby or Bash.

  • Who is supposed to use Outthentic? Anybody looking for process automation - developers, IT or devops.

  • One of the intriguing of Outthentic feature is "embedded" testing system based on Outthentic::DSL resulting in scenarios report in TAP format. You write your scenario to solve your issues, you test your scenario using Outthentic::DSL - this is indivisible approach.

  • Outthentic does not force you to use a "special" language to write your scenarios , you choose Perl, Ruby or Bash ( More languages in plans , Perl6 , huh ? ;). Instead Outthentic provides your some integration, testing facilities to make scenario development process more effective ...

  • Sparrow is a kinda orchestration tool to make outthentic scenarios development and distribution process more simple and agile. Outthentic scenarios could be packaged, distributed, grouped and configured to make it easier scenarios usage in a industrial way.

  • SparrowHub - is a central repository for reusable multi purposes scenarios. An only few plugins could be found here right now but this will be a good start point for other sparrow plugin developers on how to create a new plugins.

That is it.

Have a useful scenario? Excellent! Wrap it up into sparrow plugin and upload it into SparrowHub! That is so easy ...

--- Alexey Melezhik

About melezhik

user-pic Dev & Devops --- Then I beheld all the work of God, that a man cannot find out the work that is done under the sun: because though a man labour to seek it out, yet he shall not find it; yea further; though a wise man think to know it, yet shall he not be able to find it. (Ecclesiastes 8:17)