(R)?ex the friendly automation framework

News

2019-12-05
Rex-1.7.1

The Rex-1.7.1 release is now available on CPAN, fixing a Windows testing issue, and updating some docs.

2019-11-05
Rex-1.7.0

The Rex-1.7.0 release is now available on CPAN.

2019-07-02
Deprecating official Rex packages

As part of our efforts to simplify maintenance around RexOps projects, we have decided to stop building Rex packages on our side. We recommend relying on OS packages maintained by the various distributions in their respective upstream repositories, or to install Rex from CPAN.

2019-06-09
Post-migration updates & clean-up

Over the course of the past weeks many clean-ups have been done, reaping the benefits provided by our new Statocles-based site:

2019-05-19
New site engine for rexify.org

After months of work on a new site backend, we reached the MVP today for our site to be switched over to a new engine: from now on, our site will be maintained using the static site generator Statocles.

Conferences

2016-06-21

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 » Release notes for 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

Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.ô.-   Disclaimer