(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 » Release notes » 1.0.0

Release notes for 1.0.0

We are proud to announce the 1.0.0 release of Rex. We want to thank every contributor that made this first major release possible. Rex 1.0 will be a LTS release, which means that it will get support from the community (at least) until march 2017.

We're developing Rex for more than 4 years and because Rex is now used in many production environments we felt it was the right time to release the first major version. We try to follow the semver versioning scheme, so that it is possible to have a good deprecation path if things change.

Rex is a project completely driven by volunteers and without all the support from the community by using it, sending bug reports and feature requests and submitting patches it wouldn't be the great project it is. So many thanks to all of you. If you want to help developing Rex and become part of the core team, feel free to contact us on irc (irc.freenode.net / #rex).

These are the changes in 1.0.0 release.

Common

With Rex 1.0 we changed the communication from libssh2 (Net::SSH2) to openssh (Net::OpenSSH) by default, because many of us already uses this and it was also the default if featureset 0.55 was enabled.

But you can always use the old communication with the following command:

set connection => 'SSH';

augeas

With augeas it is possible to edit configuration files without the need to use templates and to overwrite all of the file. So if you want to allow people to edit the configuration files on your servers also by hand (for example on test machines for your developers) you can use augeas to ensure that some specific parameters in these configuration files are set.

To use this it is required to have augtool installed on your servers. This is usually in the package augeas or augeas-tools.

use Rex::Commands::Augeas;

task "prepare", sub {
  augeas insert => "/files/etc/hosts",
    label     => "01",
    after     => "/7",
    ipaddr    => "192.168.2.23",
    canonical => "frontend01";

  augeas modify => 
    "/files/etc/ssh/sshd_config/PermitRootLogin" => "without-password",
    on_change => sub {
      service sshd => "restart";
    };
};

PkgConf

The PkgConf commands are especially usefull on debian/ubuntu systems to query and to modify package configurations. For example if you want to configure the mysql root password during package installation. To see more example please refer to the API documentation.

use Rex::Commands::PkgConf;

task "prepare", sub {
  set_pkgconf("mysql-server-5.5", [
    { question => 'mysql-server/root_password',       type => 'string', value => 'mysecret' },
    { question => 'mysql-server/root_password_again', type => 'string', value => 'mysecret' },
  ]);
};

tty usage

If you're using use Rex -feature => ['1.0']; tty usage is disabled. This increases the compatibility with some init scripts that don't disown from the running tty. If you're using sudo then you need to configure the user to not need a tty to run sudo.

Defaults:username !requiretty

If you can't change this behaviour you can always use the tty feature to tell Rex to spawn a tty.

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

base

Internal

Testing

Bugfixes

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