(R)?ex the friendly automation framework



The Rex-1.13.2 release is now available on CPAN. It contains only documentation updates, mostly for the built-in template capabilities, but also fixes a few typos.


Happy 10th birthday, Rex!

The Rex-1.13.1 release is now available on CPAN. It is focusing on CMDB bugfixes and documentation, while also fixing a missing feature flag. Upgrade is recommended for all users.


The Rex-1.13.0 release is now available on CPAN. It adds on_no_change hooks for file management commands to trigger further actions when files are left unchanged. Upgrade is recommended for all users.


The Rex-1.12.2 release is now available on CPAN. It fixes various regressions, as well as bugs around file management. Upgrade is highly recommended for all users.


The Rex-1.12.1 release is now available on CPAN. It adds documentation for feature flags, and fixes a release packaging issue.



» Home » Docs » Release notes » Release notes for 0.12

Release notes for 0.12


task "dosomething", sub { say sudo "id"; };

user "root"; public_key "/path/to/your/ec2-public.key"; private_key "/path/to/your/ec2-private.key.pem";

# set the cloud service provider to "Amazon" cloud_service "Amazon";

# set cloud auth cloud_auth "$access_key", "$secret_access_key";

# set cloud region cloud_region "ec2.eu-west-1.amazonaws.com";

# define a group with all running ec2 instances group ec2 => get_cloud_instances_as_group();

task "list", sub { print Dumper cloud_instances_list; print Dumper cloud_volume_list;

<span class="hljs-function">print</span> Dumper get_cloud_regions;
<span class="hljs-function">print</span> Dumper get_cloud_availability_zones;


task "create", sub {

<span class="hljs-comment"># if you want an ebs volume, create it. if not, you don't need this.</span><span class="hljs-comment">

my $vol_id = cloud_volume create => { size => 1, zone => "eu-west-1a"; };

<span class="hljs-comment"># create the cloud instances and attach the just created ebs volume.</span><span class="hljs-comment">

cloud_instance create => { image_id => "ami-02103876", name => "test-ec2", key => "my-test-key", volume => $vol_id, # if you don't have a volume, skip this zone => "eu-west-1a", # the volume and the instance must be in the same zone. skip this if you don't have a volume. }; };

task "destroy", sub { cloud_volume detach => "vol-xxaabb"; cloud_instance terminate => "i-ffgghhjj"; cloud_colume delete => "vol-xxaabb"; };

task "prepare", group => "ec2", sub { run "apt-get update"; install package => "apache2"; service apache2 => "start"; };

Proudly powered by Statocles

GitHub / IRC / Twitter / Google Groups / StackShare / Mailing list / Server Fault   -.ô.-   Disclaimer