Skip to content

Instantly share code, notes, and snippets.

@krimdomu
krimdomu / gist:9394089
Created March 6, 2014 16:50
task params
task "mytask", sub {
my $param = shift;
say $param->{param1};
say $param->{param2};
};
# call with:
@krimdomu
krimdomu / gist:9272971
Created February 28, 2014 15:25
calling tasks
task "run", "host1", sub {
# run task "prepare" on the current ssh connection
prepare();
# run task "start_services" on the current ssh connection
start_services();
# create a new connection, to the server defined in the task definition
# and run the task prepare
do_task "prepare";
@krimdomu
krimdomu / gist:7398483
Created November 10, 2013 13:46
jiffybox
use strict;
use warnings;
use Rex::Commands::Cloud;
use Data::Dumper;
user "root";
password "blahblub123%%";
pass_auth;
@krimdomu
krimdomu / gist:7368520
Created November 8, 2013 09:24
get servers out of a group
group servers => "db", "frontend[01..04]";
task "test", sub {
# this returns the content of the group as is. so the frontend servers
# don't get parsed to frontend01, frontend02, ...
my @servers_raw = Rex::Group->get_group("servers");
print Dumper(\@servers_raw);
# this will parse the frontend[01..04] into 4 servers
@krimdomu
krimdomu / gist:6387215
Created August 30, 2013 07:37
set parallelism of task
# Rexfile
user "root";
key_auth;
task "mytask", sub {
# do something
};
@krimdomu
krimdomu / gist:6080102
Created July 25, 2013 14:15
rex and expect
# Rexfile
use Expect;
set connection => "OpenSSH";
my $expect_timeout = 5;
my $git_password = 'f00b4r';
my $sudo_password = 'test';
@krimdomu
krimdomu / gist:5406176
Last active December 16, 2015 08:29
authentication different per server
use Rex -feature => '0.40';
use String::Escape 'string2hash';
user "root";
group mygroup => "srv02", "srv01", "srv03";
configure_auth("server.lst");
task "test", group => "mygroup", sub {
my $output = run "uptime";
say $output;
@krimdomu
krimdomu / gist:5299913
Created April 3, 2013 09:58
filling group from database
use Rex::Commands::DB {
dsn => "DBI:mysql:database=test;host=localhost",
user => "myuser",
password => "foobar",
};
group mygroup => map { $_->{name} } db select => {
fields => "name",
from => "servers",
@krimdomu
krimdomu / gist:5012195
Created February 22, 2013 09:53
get the servers out of a group
group mygroup => "srv01", "web[01..10]";
task "test", sub {
my @servers = get_servers("mygroup");
for my $srv (@servers) {
run_task "foo", on => $srv, params => { param1 => "value1", param2 => "value2" };
}
};
sub get_servers {
@krimdomu
krimdomu / gist:4555039
Last active December 11, 2015 05:49
Using Amazon to create dev machines
use strict;
use warnings;
use Data::Dumper;
use Rex::Commands::Cloud;
use Rex::Commands::SimpleCheck;
use Rex::Commands::SCM;
use Rex::Commands::Iptables;
my $access_key = "your-access-key";