第 1 页 共 8 页
Apache Agent for Linux安装配置指南
通常情况下,在ROSEHA中的配置步骤为: 1) 安装ROSEHA, 准备基本环境 2) 在ROSEHA中配置服务, 点击create完成. 3) 修改启动/停止脚本. 4) 手工测试脚本 5) 在ROSEHA中执行操作及测试
第 2 页 共 8 页
1
准备工作及软件的安装
1.1
安装前请确认Apache已经安装且页面数据部分建立在共享盘上, Apache的应用程序部分则可安装在两主机的本地硬盘上,也可安装在磁盘阵列上,但相关文件的配置,mount 点以及权限等等,均应该相同。 1.2 1.3
申请License。将RoseHA的版本及要申请的Agent的应用名称发到Rose公司。 将RoseHA安装介质CDROM放入主机光驱,将光驱挂载到/mnt/cdrom下,然后进入RoseHA的安装目录,如:
# cd /mnt/cdrom,然后,执行命令:# rpm -i APA-AGENT-xxx.rpm安装软件包。 1.4
安装完成后,在/opt/roseha/bin/目录下会增加以下文件:
ha_ag_apache.sh、ha_ag_apache.x、apache_start.sh、apache_stop.sh; 1.5
特别提示:手工将/etc/rc3.d中调用Apache的链接文件删除防止系统自动启动Apache。
2
在GUI中的创建服务
2.1
在HA中配置Apache服务
2.1.1 选择USERDEF类型(TYPE)
2.1.2 GROUPID:如果该值的配置与其它服务的GROUPID的配置完全一致,那么表
示将这几个服务都绑定成一个组,任何单个服务发生切换都将导致同组的其它服务也发生切换。
2.1.3 Active IP 地址指的是Apache提供给客户端访问的IP地址,这个地址不能是主
机的IP地址,Active Subnetmask 按照实际需要的掩码填写。
2.1.4 Active Volume 指的是磁盘阵列上Apache存放页面数据的共享盘,在主机(Active)
上对应的设备名称;Backup Volume 指的是磁盘阵列上Apache存放页面数据的共享盘,在备机(Backup)上对应的设备名称;实际上它们都指的是磁盘阵列上的同一个共享盘; MOUNT POINT指的是这个装有数据的共享盘对应的mount 点
第 3 页 共 8 页
(目录), 该目录结构在两台主机上必须完全相同。通常这三项可以为空, 也就是不填写任何内容,而关于共享盘的mount 操作可以通过在apache_start.sh 和 apache_stop.sh 编写对应的mount 和 umount 语句来完成.
2.1.5 RESTART TIMES指的是apache服务出错以后,在本地尝试重新启动apache服
务的次数,如果该数值为0,则当本地apache服务失败后,HA会直接切换该服务到备机,而不会在本地尝试重启。
2.1.6 SERVICE NAME 是在ROSEHA中区分识别各个服务的名称,其名称可任意取,
但每个服务(在有多个服务时)的名称必须唯一。
2.1.7 IP HOLDING NIC,指的是两台主机上分别用来支持Active IP的网卡(eth0,
eth1…),鼠标点击网卡名称后,该项标识为黑色,表示该网卡已被选择。 2.1.8 AGENT LICENSE 填写申请到的HA 的apache AGENT的license,全部大写。 2.1.9 AGENT SCRIPT ,这里应该填写ROSE提供的检测apache的Agent脚本
ha_ag_apache.sh, 该文件存放在 /opt/roseha/bin/ 目录下。START / STOP Script 指的是启动脚本文件和停止脚本文件。缺省模板文件是 apache_start.sh 和 apache_stop.sh文件, 这两个文件也存放在/opt/roseha/bin/ 目录下。在实际工作中,是一定要根据实际情况对这三个脚本文件进行修改的, 而且是每台主机上的这三个文件都必须根据本地主机的实际情况进行本地化之后才能使用。 2.1.10 点击create按钮完成本服务的创建。
2.2 服务创建后,在GUI界面中显示的服务状态是BRINGOUT灰色状态。在
做BRINGIN之前,要先对apache_start.sh、apache_stop.sh、ha_ag_apache.sh做本地化处理。
3 Agent脚本本地化
3.1
apache_start.sh 脚本及相关文件修改实例
脚本中红色部分需要根据实际情况,修改为实际的真实的值。
第 4 页 共 8 页
#!/bin/sh # This file: apache_start.sh # Version: 4.0.1 HAHOME=`cat /etc/init.d/HAHOME` export HAHOME out=$HAHOME/bin/APIOUT.x SERVICENAME=$2 # When Another Server are Down, You MUST sleep awhile. # You can change this value to meet your requirement if need. if [ \"$1\" = \"anotherdown\" ] then /bin/sleep 30 fi # 指定实际Apache页面数据使用的共享盘的设备名称 (语句组一) # 如果此处理共享盘的mount等动作,则可以让GUI配置界面中的 # Active Volume,Backup Volume, 以及 Mount Point 三项保持空 # DISKDEV=/dev/sda5 # MOUNTPOINT=/website
第 5 页 共 8 页
# $HAHOME/bin/dflush $DISKDEV # fsck -a $DISKDEV # if test $? -ne 0 # then # ${out} \"[INFO] fsck ${DISKDEV}......\" # fsck -yf $DISKDEV # fi # mount $DISKDEV $MOUNTPOINT #判断是否mount成功,如果没有成功,则退出启动脚本 # mount | grep \"${DISKDEV} on ${MOUNTPOINT} \" >/dev/null 2>&1 # if test $? -ne 0 # then # ${out} \"[INFO] Cannot mount ${DISKDEV}.\" # exit # fi # 判断apache是否已经启动过,如已启动,不做操作,如果没启动,则启动Apache $HAHOME/bin/ha_ag_apache.sh $SERVICENAME 0 if test $? -eq 0 then ${out} \"[INFO] The service <${SERVICENAME}> has started.\" exit else #将apache目录修改为本地的目录 ${out} \"[INFO] Start apache server....\" /usr/sbin/apachectl stop >/dev/null 2>&1 /usr/sbin/apachectl start >/dev/null 2>&1 fi # 报告脚本执行完成 ${out} \"[INFO] Start shell <$0> finished.\"
3.2
apache_stop.sh 脚本及相关文件修改实例
第 6 页 共 8 页
#!/bin/sh # This file: apache_stop.sh # Version: 4.0.1 HAHOME=`cat /etc/init.d/HAHOME` export HAHOME out=$HAHOME/bin/APIOUT.x SERVICENAME=$2 # 设置共享卷设备和挂载点 # DISKDEV=/dev/sda5 # MOUNTPOINT=/website ERRORNUMBER=$3 ${out} \"[INFO] The service <${SERVICENAME}> stop because of {$ERRORNUMBER}.\" # 根据实际情况修改正确的Apache 执行文件存放的绝对路径 ${out} \"[INFO] Stop apache server....\" /usr/sbin/apachectl stop >/dev/null 2>&1 sync #卸载卷部分 # $HAHOME/bin/UMOUNT $DISKDEV $MOUNTPOINT # mount | grep \"${DISKDEV} on ${MOUNTPOINT} \" >/dev/null 2>&1 # if test $? -eq 0 # then # ${out} \"[WARNING] Cannot umount ${DISKDEV}.\" # /sbin/reboot # fi# 报告脚本执行完成 ${out} \"[INFO] Stop shell <$0> finished.\"
第 7 页 共 8 页
3.3
ha_ag_apache.sh本地化
该脚本定义的以下内容需要根据实际情况修改: APA_PATH=/usr/sbin/httpd
# Apache的安装路径
4 手工测试apache_start.sh 和 apache_stop.sh 脚本
在这里需要说明的是, 在create了一个服务之后, 该服务处于灰色BringOut状态,也就是未启动状态. 这时选中该服务, 再点击BringIn 按钮,则可以调用apache_start.sh 启动apache服务。但是,在刚刚创建好apache这个服务(JOB)的情况下,通常不要先在GUI中执行BringIn的动作,这时应该先单独测试apache_start.sh 和 apache_stop.sh.
4.1 在完成JOB的创建后,离开GUI,回到终端窗口,首先确保每台主机的
apache_start.sh 和 apache_stop.sh已经编写修改完成.
4.2 单独手工测试apache_start.sh 和 apache_stop.sh脚本. 具体方法如下:
4.2.1 确保本机和另外一台主机都没有启动apache,没有使用共享卷(没有mount),没
有挂上 Active IP地址
4.2.2 在本地先挂上Active IP地址. 因为apache 需要的Active IP地址在实际使用时是
通过ROSEHA来挂上的, 而不是通过OS来自动挂上. 因此在手工试验脚本时,需要先手工挂上Active IP地址。客户连接apache提供的应用时使用该Active IP地址.如果Active IP地址是 192.200.200.99, 则可以使用命令: # ifconfig eth0:1 192.200.200.99 up
4.2.3 然后进入到目录/opt/roseha/bin,手工执行 apache_start.sh 来启动apache:
# ./<脚本文件名> <参数一: test> <参数二: 该脚本文件对应的服务(在ROSEHA中的JOB)的名称> 例如:
# ./apache_start.sh test apache
其中 apache 是Apache这个服务在ROSEHA中的JOB名称, 出现在服务齿轮
第 8 页 共 8 页
图标的下方。
4.2.4 判断apache_start.sh的执行是否正常, 共享盘是否正常mount, apache是否正
常启动。如果发现有问题则可以及时修改脚本文件
4.2.5 执行 apache_stop.sh 来停apache,命令使用方法及格式同上:
# ./apache_stop.sh test apache
其中apache是apache这个服务在ROSEHA中的JOB名称,出现在服务齿轮的下方
4.2.6 判断 apache_stop.sh 是否执行正常,如有必要则进行修改
4.2.7 最后手工释放Active IP地址, 即执行ifconfig将Active IP地址down掉 4.2.8 在另外一台主机上 执行 4.2.1到 4.2.7
4.3 当脚本手工测试没有问题后, 先让系统处于4.2.1状态, 然后则可以继
续在ROSEHA中执行BringIn和BringOut等动作,以及其它的测试项目。
在上述的手工测试中,对于发现脚本中的错误,比较有帮助.在实际操作中一定要特别小心仔细。