技术开发 频道

IBM HTTP Server的免安装

    【IT168 技术文章】

    一、背景需求

    二次安装后,是否可以通过复制拷贝IHS的安装目录,修改配置即可实现再用。在服务器集群数量巨大,生产环境多节点的安装、部署、迁移、扩展,以及搭建测试环境时,可有效节省时间、人力和物力,提高工作效率。

    二、设计思路

    1、复制IHS:从已经安装过IHS、已经打过补丁、根据实际需要调整过参数、性能稳定可靠、运行良好的服务器上,将整个IHS安装路径压缩打包至目标服务器,按照源服务器IHS相同的安装路径解压;如果不按照相同的安装路径解压,则修改配置时不仅要修改替换源服务器的主机名,还需修改替换安装路径;

    2、清理垃圾:将目标服务器上IHS安装目录下拷贝过来的源服务器运行时产生的log删除;

    3、修改配置:修改配置文件,将源服务器的主机名替换为目标服务器的主机名,如果源和目标服务器的IHS安装路径不一致,则需替换新老IHS安装路径;

    4、启动验证。

    如果你还觉得麻烦,则最简单的免安装方法,就是拷贝后保持源和目标服务器的IHS安装路径一致,编辑httpd.conf,将httpd.conf中的源服务器的主机名/IP替换为目标服务器的主机名或IP,即可在目标服务器上启动和运行IHS。

    三、实现脚本

    1、清理log脚本

    #!/bin/sh

    #clrIHSlogs.sh

    #carpnet

    IHS_INSTALL_HOME="/opt/IBM/HTTPServer"

    if [  -x "$IHS_INSTALL_HOME"  ]

    then

    echo "[`date`] 开始清理$IHS_INSTALL_HOME/logs/下的log"


    rm -rf $IHS_INSTALL_HOME/logs/error_log

    rm -rf $IHS_INSTALL_HOME/logs/access_log

    rm -rf $IHS_INSTALL_HOME/logs/httpd.pid


    echo "[`date`] 结束清理$IHS_INSTALL_HOME/logs/下的log"

    fi

    2、修改配置脚本

    本脚本适用于Linux,其他操作系统请自行改造之;目前暂不考虑源和目标服务器的IHS安装路径不一致的情况,如需,则自己动手增强该部分逻辑。

    #!/bin/sh

    #changecfg4IHS.sh

    #carpnet

    oldhost="appboss1"

    oldip="xxx.xxx.xxx.xxx"

    newhost="appboss2"

    IHS_INSTALL_HOME="/opt/IBM/HTTPServer"

    echo "[`date`] oldhost--- :$oldhost"

    echo "[`date`] newhost--- :$newhost"

    echo "[`date`] profilepath--- :$profilepath"

    echo "[`date`] POSTFIXs--- :$POSTFIXs"

    #替换$IHS_INSTALL_HOME目录下文件中的老主机名(如appboss1)为新主机名(如appboss2)

    if [ -x "$IHS_INSTALL_HOME" ]

    then

    cat /dev/null > $IHS_INSTALL_HOME/results.tmp

    find $IHS_INSTALL_HOME -user root -type f -print|xargs grep $oldhost|grep -v plugin-cfg.xml|awk -F '[:  |:]' '{print $1}'|awk '{ORS=" "}{print $1}'  >> $IHS_INSTALL_HOME/results.tmp

    results=`cat $IHS_INSTALL_HOME/results.tmp|awk -F '[:  |:]' '{print $1}'|awk '{ORS=" "}{print $1}'`

    echo "[`date`] results--- :$results"

    if [ "$results" != "" ]

    then

    for result in $results

    do

    echo "[`date`] result--- :$result"

    sed -i "s/$oldhost/$newhost/g" $result

    done

    fi


    rm -rf $IHS_INSTALL_HOME/results.tmp

    fi

    #to do:源和目标服务器的IHS安装路径不一致情形,有待开发

    四、应用成效

    在生产环境水平扩展节点、迁移,以及搭建测试环境的各种场景下,按照上述思路和应用实现脚本,能够节省系统管理员的时间和精力,避免重复劳动。

    五、结论

    通过提出IHS二次安装时如何实现免安装的设计思路和开发短小精悍的shell脚本,并在生产环境的扩容和迁移、测试环境的搭建中等大量场合中可简单运用,且行之有效。
 

0
相关文章