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

一切自动化 随时轻松

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

搜索

新闻

2016-03-07
(R)?ex 1.4.0 发布, 包含大量更新. 详情 发布文档.
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-09
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-03-27
阅读 Andy Beverley 带来的演讲文稿 An introduction to Rex

会议

2015-05-07
German Perl Workshop 上做 Infrastructure as Code (ger) 的演讲。

培训

2015-11-30/2015-12-01 (Karlsruhe)

需要帮助吗?

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

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

Professional support is also available.

为什么使用 Rex?

  • 如果你要做一个任务,运行两次以上,请自动化它吧 !
  • 再也不会忘记安装步骤了。
  • 自动化可以减少失败的风险,让你干自己想干的活。

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

开放源代码

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

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

Uptime?

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

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

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

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

desc 'Get uptime';
task 'uptime', sub {
   say run 'uptime';
};

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

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

保持你的配置文件同步

这个例子将在 5 个 apache 服务器上保持配置文件同步。如果配置文件改变了,他会自动 reload 服务。

如果这个任务在一个未初始化(还没安装 Apache)的机器上运行,它将首先安装apache。

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

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

desc 'Prepare frontend server';
task 'prepare', group => 'frontend', sub {
  pkg 'apache2',
    ensure => 'present';

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

desc 'Keep configuration in sync';
task 'configure', group => 'frontend', sub {
  needs '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;
sudo_password 'mysudopw';

desc 'Prepare frontend servers';
task 'prepare', group => 'frontend', sub {
  pkg 'apache2',
    ensure => 'latest';

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

desc 'Keep configuration in sync';
task 'configure', group => 'frontend', sub {
  needs '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