(R)?ex the friendly automation framework

News

2020-12-05
Rex-1.13.2

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.

2020-11-05
Rex-1.13.1

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.

2020-10-05
Rex-1.13.0

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.

2020-09-05
Rex-1.12.2

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.

2020-08-05
Rex-1.12.1

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

Conferences

2016-06-21

» Home » Docs » Rex book » 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";
  };

Proudly powered by Statocles

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