通过Rex控制多个集群环境中的tomcat和weblogic(待完善)

Rex控制台;操作系统(centos7.1)

weblogic集群操作系统:centos6.6

tomcat集群操作系统:centos6.6

nginx代理操作系统:centos6.6

远程方式:ssh公钥认证;

Rex最新版本是1.3.2 该模块功能也很强大,支持各种操作,比较轻量。基本上能满足我的所有需求。Rex的安装,使用以及配置请参perldoc或者官网;

代码如下:

use Rex -feature => [‘1.3‘];
use strict;
use warnings;
use Data::Dumper;
#webservers跑的都是weblogic服务
#mobservers是移动web服务
#proxyservers是代理服务
private_key "/root/.ssh/id_rsa";
public_key "/root/.ssh/id_rsa.pub";
#设置线程数
parallelism ‘max‘;
group webservers        =>"webserver[1..6]";
group mobservers        =>"mobserver[1..3]";
group proxyservers      =>"proxy[224,226,228]";
desc "查看运行的进程";
task "ps",group=>"webservers",sub{
        for my $prc(ps()){
                say "command    :".$prc->{"command"};
                say "pid        :".$prc->{"pid"};
                say "user       :".$prc->{"user"};
        }
};
desc "检查webservers集群上的weblogic是否在运行,并获取pid号";
task "chk_wls",group=>"webservers",sub{
        for my $prc(ps()){
                if($prc->{command}=~/java/i){
                        say "weblogic正在运行";
                        say "pid:".$prc->{"pid"};
                }else{
                        next;
                }
        }
};
desc "停止webservers集群上的weblogic服务";
task "stop_wls",group=>"webservers",sub{
        for my $process(ps()){
                if($process->{"command"}=~/java/i){
                        say run "stop_node.sh";
                        last;
                }else{
                        next;
                }
        }
        say "welbogic服务已经关闭";
};
desc "启动webservers集群上的weblogic服务";
task "start_wls",group=>"webservers",sub{
        for my $process(ps()){
                if($process->{"command"}=~/java/i){
                        say "服务已经在运行";
                        exit(1);
                }else{
                        next;
                }
        }
        run "start_node.sh";
        say "weblogic服务启动成功";
};
desc "启动mobservers集群上的tomcat";
task "start_tomcat",group=>"mobservers",sub{
        my $star_cmd=‘/usr/bin/startup.sh‘;
        for my $process(ps()){
                if($process->{"command"}=~/java/i){
                        say "服务已经在运行";
                        exit(1);
                }else{
                        next;
                }
        }
        if(is_file($star_cmd) && is_readable($star_cmd)){
                say run "startup.sh";
        }else{
                chdir("/usr/local/tomcat/bin");
                cp("./startup.sh","/usr/bin/");
                say run "startup.sh";
        }
        say "tomcat启动...ok";
};
desc "关闭mobservers集群上的tomcat";
task "stop_tomcat",group=>"mobservers",sub{
        my $stop_cmd=‘/usr/bin/shutdown.sh‘;
        for my $process(ps()){
                if($process->{"command"} !~ /java/i){
                        say "服务已经停止";
                        exit(1);
                }else{
                        next;
                }
        }
        if(is_file($stop_cmd) && is_readable($stop_cmd)){
                say run "shutdown.sh";
        }else{
                chdir("/usr/local/tomcat/bin");
                cp("./shutdown.sh","/usr/bin/");
                say run "shutdown.sh";
        }
        say "tomcat服务关闭...ok";
};

脚本写的很烂,现在还不是太熟悉,只能很机械的先用着

时间: 2024-08-23 08:26:05

通过Rex控制多个集群环境中的tomcat和weblogic(待完善)的相关文章

Oracle rac集群环境中的特殊问题

备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集群环境中,关键数据通常是并发存放的,比如放在共享磁盘上.而集群内各个成员的生身份是对等的,所有节点对数据有相同的访问权利.这时就必须有某种机制能够控制节点对数据的访问. 在Oracle rac中,是利用DLM (Distribute Look Management)机制来进行多个实例间的并发控制. 2.健忘症

EhCache缓存在集群环境中同步问题

由于 EhCache 是进程中的缓存系统,一旦将应用部署在集群环境中,当每一个节点维护各自的缓存数据,某个节点对缓存数据进行更新,这些更新的数据无法在其它节点中共享,这不仅会降低节点运行的效率,而且会导致数据不同步的情况发生.例如某个网站采用 A.B 两个节点作为集群部署,当 A 节点的缓存更新后,而 B 节点缓存尚未更新就可能出现用户在浏览页面的时候,一会是更新后的数据,一会是尚未更新的数据,尽管我们也可以通过 Session Sticky 技术来将用户锁定在某个节点上,但对于一些交互性比较强

深入探讨在集群环境中使用 EhCache 缓存系统

EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用程序中的位置: 图 1. EhCache 应用架构图 EhCache 的主要特性有: 快速: 简单: 多种缓存策略: 缓存数据有两级:内存和磁盘,因此无需担心容量问题: 缓存数据会在虚拟机重启的过程中写入磁盘: 可以通过 RMI.可插入 API 等方式进行分布式缓存: 具有缓存和缓存管理器的侦听接口

集群环境中使用 EhCache 缓存系统

EhCache 缓存系统 : 本章节将要介绍EhCache及EhCache实现分布式的一些解决方案.并针对于这些解决性方案做一个实现,后续将出一个提供项目模块化.服务化.插件化的VieMall快速开发平台,同时集成Dubbo服务化.Zookeeper(分布式调度/分布式配置管理服务).Redis分布式缓存技术及Memcache/Ehcache 二级缓存切换.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Solr搜索.Nginx负载均衡等分布式及读写分离.如果有时间可以深入分表分库

集群环境中使用Redis实现分布式锁两种方式

一.介绍 互联网的应用场景中,为了支持高并发的请求,服务都是执行的分布式部署,相同的任务可以在集群中不同的服务器上执行,并且现在的服务容器都是支持多线程,相同的任务也可能会被同一个容器多次执行,都要求执行结果都满足幂等性的设计原则. 分布式锁,就是为了确保在分布式的环境下,相同任务只会执行成功的执行一次,后续的执行不会对这些已经产生了变化的业务再次产生影响. 分布式锁的实现有不少的方式,如: 使用RDBMS数据库本身的表锁或行锁特性: 使用Redis做为分布式锁: 使用Zookeeper做为分布

web集群环境中的session同步几种方法

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果 session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态.所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一,利用数据库同步session 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上,用户访问web服务器时,会去这个专门的数据库check一下session的情况,以达到s

在集群环境中,Namenode和JobTracker不在一个节点上

假设NameNode在hadoop1上,JobTracker在hadoop2上 1.1 NameNode所在节点是通过配置文件core-site.xml的fs.default.name的值体现的. 值还是hdfs://hadoop1:9000 JobTracker所在节点是通过配置文件mapred-site.mlx的mapred.job.tracker的值体现的. 值修改为http://hadoop2:9001 1.2 在hadoop1上执行命令hadoop-daemon.sh start na

spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】

最近做了一个spring boot 整合 quartz  实现 动态定时任务配置,在集群环境下运行的 任务.能够对定时任务,动态的进行增删改查,界面效果图如下: 1. 在项目中引入jar 2. 将需要的表导入数据库 官网上有不同数据库的脚本,找到对应的,导入即可 3. java 代码 将quartz 的相关配置文件,配置为暴露bean,方便后期引用. 有一处关键的地方,就是注入spring 上下文,也可以算是一个坑.如果,不注入spring 上下文,那么新添加的定时任务job,是新new 的一个

DataStage 六、安装和部署集群环境

DataStage序列文章 DataStage 一.安装 DataStage 二.InfoSphere Information Server进程的启动和停止 DataStage 三.配置ODBC DataStage 错误集(持续更新) DataStage 四和五因为包含大量图片发布不便,有兴趣学习和研究者请联系索要!!! 说明 以下的内容中使用主机dsconductor01(主导节点)和主机dscompute01(普通节点)实验安装DS集群,分别在主机dsconductor01(主导节点)中安装