(R)?ex 部署 & 配置管理框架

一切自动化 随时轻松

  • > 在你的运行环境无缝集成
  • > 简单的使用和方便的扩展
  • > 会点Perl 就能玩Rex
  • > Apache 2.0 开源协议
task prepare => sub {
   install "apache2";
   service apache2 => ensure => "started";
};
阅读我们的入门手册吧

搜索

新闻

2015-05-03
(R)?ex 1.2.0 released. See the release notes for more details.
2015-04-06
Repositor.io 1.0.0 released. repositor.io is a repository management tool for apt, yum, yast and docker. See the website for more details.
2015-03-29
(R)?ex 1.1.0 released. 阅读 发版笔记解更多信息。
2015-03-27
阅读 Andy Beverley 带来的演讲文稿 An introduction to Rex
2015-02-27
Work with (R)?ex at adjust! Check out their job posting for details, or contact our fellow core developer, FErki.
2014-11-14
Gabor Szabo 写了一篇关于 (R)?ex 的文章,专注于不同的认证方法和如何保护你的访问。上 Perl Maven 阅读!

会议

2014-09-19

今年的 Kieler LinuxTag 会有 Rex workshop。你可以在 workshop 页面上注册参与。

需要帮助吗?

Rex 是一个开源的项目,所以你可以找到社区的支持,连接如下:

Professional support is also available.

为什么使用 Rex?

如果你要做一个任务,运行两次以上, 请自动化它吧 !

不要忘记每一个安装的步骤,创建为自动化. 因为自动化可以减少失败的风险,让你真正的轻松工作.

Rex 据有的优势

  • 基于 SSH,无需额外部署客户端
  • 无缝集成,没有冲突
  • 易用易扩展
  • 入门快,十分钟 Perl 基础就够

开放源代码

我们相信开源coder 的想法.所以Rex 全部代码都是给予Apache 2.0 的许可协议开源

你可以加入我们社区让Rex 更加的完美.

Uptime?

这个命令行例子 将执行 "uptime" 在所有的主机上 如 (frontend01, frontend02, ...).

$ rex -H "frontend[01..15] middleware[01..05] db[01..04]" -e "say run 'uptime'"

统一效果,基于 Rexfile 文件的话:

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

desc "Get Disk Free";
task "disk_free", sub {
   my $output = run "df -h";
   say $output;
};

现在你可以用这个命令运行你的任务

$ rex -H "frontend[01..15] middleware[01..05] db[01..04]" disk_free

保持你的配置文件同步

这个例子将安装Apache webserver 在 5 个服务器上 并且保持配置文件同步.如果配置文件改变了 他会自动reload 你的apache 服务.

如果这个任务将执行首先安装好apahce服务在做再做配置文件同步.

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

user "root";
group frontend => "frontend[01..05]";

desc "Prepare Frontend Server";
task "prepare", group => "frontend", sub {
  pkg "apache2",
    ensure => "latest";

  service "apache2",
    ensure => "started";
};

desc "Keep Configuration in sync";
task "configure", group => "frontend", sub {
  prepare();

  file "/etc/apache2/apache2.conf",
    source    => "files/etc/apache2/apache2.conf",
    on_change => sub { service apache2 => "reload"; };
};

在 sudo 下执行 ?

你也可以在sudo 下 运行任何的任务. 只需要定义 sudo 的密码然后激活 sudo。

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

user "ubuntu";
group frontend => "frontend[01..05]";
sudo TRUE;

desc "Prepare Frontend Server";
task "prepare", group => "frontend", sub {
  pkg "apache2",
    ensure => "latest";

  service "apache2",
    ensure => "started";
};

desc "Keep Configuration in sync";
task "configure", group => "frontend", sub {
  prepare();

  file "/etc/apache2/apache2.conf",
    source    => "files/etc/apache2/apache2.conf",
    on_change => sub { service apache2 => "reload"; };
};
Fork me on GitHub
Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.ô.-   Disclaimer

D