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

搜索

新闻

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 发新版的时候有个前提,就是必须保证有向后兼容性。

我知道这在有的时候有点不太可能,但是为了尽量减少这个危险,这里引入了一个东西叫特性标记。如果某个新特性需要打破兼容性,那就会有一个特性标记来表明这个改变。只有在 Rexfile 里显式声明开启这个特性标记,它才会打破向后兼容性。

所以默认情况下就是永远向后兼容的。

如果你在升级之后碰到什么问题,可以认为这是一个 bug。请通过 issue tracker 向我们报告。

特性标记

下面是当前可用的特性标记的清单:

标记 起始版本 描述
1.3 1.3 Activating the new template engine by default.
no_template_ng 1.3 Disabling the new template engine.
1.0 1.0 Disabling usage of a tty. This increases compatibility for remote execution. Furthermore, all features from earlier versions are activated.
no_autodie 1.0 Will disable autodie feature.
template_ng 0.56 Enabling the new template engine (better error reporting, etc.)
0.56 0.56 Will activate autodie feature. Furthermore, all features from earlier versions are activated.
autodie 0.56 Will enable autodie feature: die on all failed filesytem commands
0.55 0.55 Will activate using Net::OpenSSH by default if present. Furthermore, all features from earlier versions are activated.
0.54 0.54 Will activate checking services for existence before trying to manipulate them, and set() will overwrite already existing values (instead of concatenating). Furthermore, all features from earlier versions are activated.
0.53 0.53 会激活 register_cmdb_top_scope。而且所有 0.51 及以下版本的指令都会激活。
register_cmdb_top_scope 0.53 会自动注册所有 cmdb 顶层域变量到模板里。
0.51 0.51 默认会自动加载 Rex::ConstantsCMDB。而且所有 0.47 及以下版本的指令都会激活。
no_path_cleanup 0.44 Rex cleans the path before executing a command. With this feature Rex doesn't cleanup the path.
verbose_run 0.47 Explicitly output "Successfully executed" or "Error executing" messages for run() commands.
source_profile 0.44 在运行命令前加载 $HOME/.profile。
source_global_profile 0.44 在运行命令前加载 /etc/profile。
exec_autodie 0.44 用 run() 执行命令时,如果 RETVAL != 0,Rex会自动 die()。
exec_and_sleep 0.43 有时候某些命令 fork 出去不会保持运行,开启这个标记 rex 会等待几毫秒后再退出 shell。
disable_strict_host_key_checking 0.43 在 openssh 连接模式下,关闭严格的主机密钥检查。
reporting 0.43 开启报告。
empty_groups 0.42 支持使用空服务器组定义。
use_server_auth 0.42 支持对服务器设置特定的认证选项。
tty 1.0 Enable pty usage for ssh connections. (Default)
no_tty 0.41 关闭 ssh 连接的 pty。
no_local_template_vars 0.40 在模板中使用全局变量。
sudo_without_sh 0.40 直接运行 sudo 命令而不用 'sh' 执行。这个可能会打破其他的正常运行。
sudo_without_locales 0.40 不用 locales 直接运行 sudo 命令。如果你的 locales 不是 english,可能会打破其他的正常运行。
exit_status 0.39 这个选项告诉 Rex 在某个任务失败时返回一个非零的退出值。
0.35 0.35 这个选项开启 0.31 版特性以及调用任务时,不再必须传递哈希引用作为函数参数。
0.31 0.31 支持为每个服务器组设置特殊的认证选项。这可以在任务执行时覆盖掉默认的认证选项。

如何开启特性标记

你可以在你的 Rexfile 里用如下代码开启特性标记:

# Rexfile
use Rex -feature => ['0.31'];

or even multiple ones like this:

# Rexfile
use Rex -feature => [qw(exec_autodie source_profile)];
comments powered by Disqus
Fork me on GitHub
Google Group / Twitter / GitHub / Mailinglist / irc.freenode.net #rex   -.ô.-   Disclaimer

D