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

一切自动化 随时轻松

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

搜索

新闻

2014-04-12
(R)?ex 0.45.0 released. This release comes with OpenStack cloud support and lot of enhancements for common resources/functions. See the release notes including examples for the new features.
2014-04-03
Talk from Ferenc Erki at Free Software Conference of Szeged uploaded to slideshare
2014-02-02
(R)?ex 0.44.1 版本发布。该版本带来诸多炫酷特性,同时也修正了很多 bug。详见 github 上的 release notes
2013-09-21
Kieler Linux Tage 上的演讲已经上传到 slideshareyoutube (德语)上。
2013-09-16
(R)?ex 0.43.0 版本发布。该版本添加了主机清单缓存功能,执行速度更快;支持生成运行 Rex 造成的变更报告;添加了有限度的 OpenWrt 支持。更详细的变更见 Changelog
2013-08-12
yapc.eu 上的闪电演讲内容已上传到 slideshare.
2013-06-16
(R)?ex 0.42.0 版本发布。该版本开始支持使用 Net::OpenSSH 作为传输层。虽然默认依然使用 Net::SSH2,但现在可以使用你的 $HOME/.ssh/config 文件里的全部特性,并且采用 Kerberos 认证登录了。更多变化及示例见 Changelog.
2013-05-23
Inovex 刚刚公告他们提供专业级的 Rex 支持。
2013-03-20

我们很自豪的宣布 Rex 被 initiative mittelstand 评选为 2013 年度最佳开源解决方案。感谢 inovex 对此作出的贡献和支持。

需要帮助吗?

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

  • IRC: #rex on freenode
  • 邮件组: rex-users
  • 问题列表: Github
  • 特性需求: 你需要什么 特性?
  • 商务支持: inovex
  • QQ群: 252744726

为什么使用 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

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服务在做再做配置文件同步.

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 的密码

user "ubuntu";
group "frontend" => "frontend[01..05]";
sudo TRUE;   #激活sudo
sudo_password 'sudopass';

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