Sparrowdo comprises of three main components.
* server part – a sparrowdo client, should be installed at master host. Sparrowdo compiles sparrowdo scenarios written on Perl6 into json data. Then json data gets copied to the target host by scp command and sparrow client gets run remotely on the target host with json data as input parameters.
* client part – a sparrow client, should be installed at target hosts where you run automation deployment and configuration tasks. Sparrow client gets run over ssh at the target host, then installs and finally executes a so called sparrow plugins with parameters gets ready as json data copied heretofore by sparrowdo.
* sparrow plugins – multipurpose scenarios written on one of the language of your choice- Perl5, Bash or Ruby. Sparrow plugins get downloaded from sparrowhub.org and then installed by sparrow. Plugins get executed with input parameters comes from json data copied from master host to target server.
Thus, sparrowdo follows a “push” paradigm when there is central ( master ) server where you invoke ( push ) some tasks remotely ( over ssh ) on remote hosts. Below is visual presentation of the system design:
So, sparrowdo is a client sever system, with push approach similar to ansible. To allow full automation sparrowdo comes with –bootstrap(*) option to install sparrow client on target host:
$ sparrowdo –bootstrap –host=192.168.0.1
(*) bootstrap currently only available for CentOS target sever platform.
Read more about this at sparrowdo documentation pages – https://github.com/melezhik/sparrowdo#schema