(R)?ex Deployment & Configuration Management

Search

News

2016-09-08

Work with (R)?ex at adjust! Check out their job posting for details, or contact our fellow core developer, FErki.

2016-07-16

(R)?ex 1.4.1 released, fixing many bugs. See the release notes for more details.

2016-03-07

(R)?ex 1.4.0 released, containing lots of goodies. See the release notes for more details.

2015-09-04

(R)?ex 1.3.3 released, fixing a bunch of bugs. See the release notes for more details.

2015-06-22

adjust GmbH is sponsoring the (R)?ex project with a new build server. Thank you for your support!

2015-06-17

(R)?ex 1.3.2 released, fixing issues related to file manipulation when run on BSDs. See the release notes for more details.

2015-06-08

(R)?ex 1.3.1 released, fixing Rex::Commands::DB related tests.

2015-05-27

Read the second part of "Rex in practice" series about Test-driven infrastructure.

2015-05-09

repositor.io 1.1.0 released. repositor.io is a repository management tool for apt, yum, yast and docker. This is a bugfix release with fixes for ubuntu and centos7 installation media mirroring.

2015-05-03

(R)?ex 1.2.0 released. See the release notes for more details.

2015-03-27

View the slides of the talk An introduction to Rex from Andy Beverley.

Conferences

2016-06-21

Training

Need Help?

Rex is a pure open source project, you can find community support in the following places:

Professional support is also available.

» Home » Docs » Rex Book (work in progress) » Working with Files and Packages » Installing Packages

Installing Packages

Installing packages is easy. You can use the pkg function for this.

use Rex -feature => ['1.0'];

user "root";
password "f00b4r";

task "prepare_system", group => "frontends", sub {
   pkg "apache2",
     ensure => "present";
};

If you have to install multiple packages you can use an array so that you don't have to write that much.

use Rex -feature => ['1.0'];

user "root";
password "f00b4r";

task "prepare_system", group => "frontends", sub {
   pkg ["apache2", "libphp5-apache2", "mysql-server"],
     ensure => "present";
};

If you need to write a distribution independent module you can also use the case statement.

user Rex -base;

user "root";
password "f00b4r";

task "prepare_system", group => "frontends", sub {
   my $packages = case operating_system,
      Debian => ["apache2", "libphp5-apache2"],
      CentOS => ["httpd", "php5"],

   pkg $packages,
     ensure => "present";
};

 

Fork me on GitHub
Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.รด.-   Disclaimer