《Rex 管理效率提升利器.ppt》由会员分享,可在线阅读,更多相关《Rex 管理效率提升利器.ppt(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Rex 管理效率提升利器,Lekan 技术部吴泽林(莫言)2013/07/24,Rex 是什么,Rex(http:/rexify.org)是一个自动化工具,可用于远程执行、部署和配置管理。使用 Perl 开发,开源软件。采用 Apache 2.0 许可证。,简单的例子,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;
2、 say $output; ; rex -H 192.168.0.100.200” disk_free,定义设备组,定义设备组,group webservers = qw( 192.168.0.100 192.168.0.101);rex -G webservers disk_free,在 Perl 中使用,use Rex:Taskmy $task = Rex:Task-new(name = testtask);$task-set_server(remoteserver);$task-set_code(sub say Hello; );$task-modify(no_ssh, 1);,Rex
3、的功能介绍,远程执行部署配置管理其它功能,远程执行,task run = sub my $self = shift;my $cmd = $self-cmd;run $cmd, sub my ($data) = _; my $server = Rex-get_current_connection()-server; say $servern$data;rux -G allservers run -cmd=df -hrux -G allservers run -cmd=test -d /usr/local/nginx & /usr/local/nginx/sbin/nginx -s reload,
4、部署,task prepare = sub install apache2; service apache2 = ensure = started;,配置管理,task configure, group = frontend, sub prepare(); file /etc/apache2/apache2.conf, source = files/etc/apache2/apache2.conf, on_change = sub service apache2 = reload; ;,其它功能,Hardware - 收集硬件信息Transaction - 事务支持FS:File - 远程文件
5、读写Commands:Cron - Cron 管理Commands:User - 用户管理Commands:Iptables - 管理 IptableVirtualization:VBox - 管理 Virtualbox,其它功能,完整的 API 列表请参考 http:/rexify.org/api/index.html,与其它同类工具的对比,与调用 SSH 的对比与 Expect 的对比与 Puppet 的对比与自主开发工具的对比,与其它同类工具的对比,循环调用 SSH 是不可接受的,与其它同类工具的对比,与 Expect 的对比Expect 由一系列的 expect 和 send 命令组成
6、;Rex 由一个个的 Task 组成。 Expect 关心的是字符串的匹配和捕获;Rex 关心的是更高层的对象,既一个任务的执行。Expect 调试麻烦;Rex 方便调试。,与其它同类工具的对比,与 Puppet 的对比Puppet 使用 Ruby 开发;Rex 使用 Perl 开发。Puppet 提供一套自己的 DSL;Rex 直接采用 Perl 语言。Puppet 完成度高,使用复杂;Rex 方便扩展,使用相对简单。Puppet 用户更多;Rex 比较小众。,与其它同类工具的对比,与自主研发工具的对比自主研发工具和 Rex 都能与现有环境无缝整合。自主研发工具开发量大;基于 Rex 再次开
7、发开发量小。Rex 拥有社区支持。,Rex 的优缺点,Rex 的优点Rex 的缺点,Rex 的优缺点,Rex 的优点不需要 agent。使用简单,尤其对于 Perler 来说。方便扩展,方便整合现有环境。提供一系列方便好用的 API,避免重复开发。开发活跃,更新速度快。,Rex 的优缺点,Rex 的缺点依赖于 SSH。完成性不高,缺少一些其它工具如 Puppet 提供的 Dashboard 等功能,需要自己开发。不提供一套自己的 DSL,直接采用 Perl 语言,对其它语言用户不友好。,最佳应用,废弃原来直接使用 SSH 或者 Expect 脚本等做法,统一由 Rex 管理。 Rex 的 group 定义默认直接写在 Rexfile 里,可改为由设备管理数据库中读取。基于 Rex 的 Web 界面,可使用 Rex:WebUI 或者自主开发 Web 界面。基于 Rex 的操作日志追踪和审计。,Lekan Rex 应用例子,谢谢大家!,