Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rex 管理效率提升利器 Lekan 技术部 吴泽林(莫言) 2013/07/24.

Similar presentations


Presentation on theme: "Rex 管理效率提升利器 Lekan 技术部 吴泽林(莫言) 2013/07/24."— Presentation transcript:

1 Rex 管理效率提升利器 Lekan 技术部 吴泽林(莫言) 2013/07/24

2 Rex 是什么 Rex(http://rexify.org)是一个自动化工具,可用于远程执行、部署和配置管理。
使用 Perl 开发,开源软件。 采用 Apache 2.0 许可证。

3 简单的例子 Rexfile: user "rex"; key_auth;
public_key "/data/rex/.ssh/id_rsa.pub"; private_key "/data/rex/.ssh/id_rsa"; desc "Get Disk Free"; task "disk_free", sub { my $output = run "df -h"; say $output; }; rex -H " [ ]” disk_free

4 定义设备组 定义设备组 group webservers => qw( 192.168.0.100 192.168.0.101 );
rex -G webservers disk_free

5 在 Perl 中使用 use Rex::Task
my $task = Rex::Task->new(name => "testtask"); $task->set_server("remoteserver"); $task->set_code(sub { say "Hello"; }); $task->modify("no_ssh", 1);

6 Rex 的功能介绍 远程执行 部署 配置管理 其它功能

7 远程执行 task run => sub { my $self = shift; my $cmd = $self->{cmd};
run $cmd, sub { my ($data) my $server = Rex->get_current_connection()->{server}; say "$server>>\n$data" }; rux -G allservers run --cmd="df -h" rux -G allservers run --cmd="test -d /usr/local/nginx && /usr/local/nginx/sbin/nginx -s reload"

8 部署 task prepare => sub { install "apache2";
service apache2 => ensure => "started"; };

9 配置管理 task "configure", group => "frontend", sub { prepare();
file "/etc/apache2/apache2.conf", source => "files/etc/apache2/apache2.conf", on_change => sub { service apache2 => "reload"; }; };

10 其它功能 Hardware - 收集硬件信息 Transaction - 事务支持 FS::File - 远程文件读写
Commands::Cron - Cron 管理 Commands::User - 用户管理 Commands::Iptables - 管理 Iptable Virtualization::VBox - 管理 Virtualbox

11 其它功能 完整的 API 列表请参考

12 与其它同类工具的对比 与调用 SSH 的对比 与 Expect 的对比 与 Puppet 的对比 与自主开发工具的对比

13 与其它同类工具的对比 循环调用 SSH 是不可接受的

14 与其它同类工具的对比 与 Expect 的对比
Expect 由一系列的 expect 和 send 命令组成;Rex 由一个个的 Task 组成。 Expect 关心的是字符串的匹配和捕获;Rex 关心的是更高层的对象,既一个任务的执行。 Expect 调试麻烦;Rex 方便调试。

15 与其它同类工具的对比 与 Puppet 的对比 Puppet 使用 Ruby 开发;Rex 使用 Perl 开发。
Puppet 提供一套自己的 DSL;Rex 直接采用 Perl 语言。 Puppet 完成度高,使用复杂;Rex 方便扩展,使用相对简单。 Puppet 用户更多;Rex 比较小众。

16 与其它同类工具的对比 与自主研发工具的对比 自主研发工具和 Rex 都能与现有环境无缝整合。

17 Rex 的优缺点 Rex 的优点 Rex 的缺点

18 Rex 的优缺点 Rex 的优点 不需要 agent。 使用简单,尤其对于 Perler 来说。 方便扩展,方便整合现有环境。
提供一系列方便好用的 API,避免重复开发。 开发活跃,更新速度快。

19 Rex 的优缺点 Rex 的缺点 依赖于 SSH。
完成性不高,缺少一些其它工具如 Puppet 提供的 Dashboard 等功能,需要自己开发。 不提供一套自己的 DSL,直接采用 Perl 语言,对其它语言用户不友好。

20 最佳应用 废弃原来直接使用 SSH 或者 Expect 脚本等做法,统一由 Rex 管理。
Rex 的 group 定义默认直接写在 Rexfile 里,可改为由设备管理数据库中读取。 基于 Rex 的 Web 界面,可使用 Rex::WebUI 或者自主开发 Web 界面。 基于 Rex 的操作日志追踪和审计。

21 Lekan Rex 应用例子

22 谢谢大家!


Download ppt "Rex 管理效率提升利器 Lekan 技术部 吴泽林(莫言) 2013/07/24."

Similar presentations


Ads by Google