{"repo":"melezhik/sparrowdo","free":true,"listed":false,"github":"https://github.com/melezhik/sparrowdo","clone":"git clone https://github.com/melezhik/sparrowdo.git","description":"Run Sparrow tasks remotely","language":"Raku","stars":24,"topics":["configuration-management","provisioning","raku","automation"],"license":null,"category":"workflow-automation","readme_excerpt":"Sparrowdo Run Sparrow tasks remotely (and not only) Build status Install zef install Sparrowdo Usage sparrowdo --host=remote-host [options] For example: # ssh host, bootstrap first, use of local repository sparrowdo --host=13.84.166.232 --repo=file:///home/melezhik/repo --verbose --bootstrap # docker host, don't add sudo sparrowdo --docker=SparrowBird --image=alpine:latest --no sudo # localhost, with sudo sparrowdo --localhost # read hosts from file sparrowdo --host=hosts.raku DSL Sparrow6 DSL provides high level functions to manage configurations. Just create a file named sparrowdo in current working directory and add few functions: $ cat sparrowfile user 'zookeeper'; group 'birds'; directory '/var/data/avifauna/greetings/', %( owner = 'zookeeper' ); file-create '/var/data/avifauna/greetings/sparrow.txt', %( owner = 'zookeeper', group = 'birds', mode = '0644', content = 'I am little but I am smart' ); service-start 'nginx'; package-install ('nano', 'ncdu', 'mc' ); The full list of function is available at Sparrow6 DSL documentation. If DSL is not enough you can call any Sparrow6 plugin using task-run function: task-run \"show me your secrets\", \"azure-kv-show\", %( kv = \"Stash\" # key vault name secret = ( \"password\", \"login\" ) # secret names ) DSL vs task-run function DSL is high level adapter with addition of some \"syntax sugar\" to make a code concise and readable. DSL functions are Raku functions, you take advantage of input parameters validation. However DSL is limited. Not ","default_branch":null,"files":null,"tree":[],"storefront":"/r/melezhik","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/melezhik/sparrowdo/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}