服务器应用多节点部署

一 背景

目前生产环境中,用Weblogic发布部署的服务已经占据了10台服务器,且每台服务器都是一个独立的部署节点,每次升级时,都需要手动登录每台服务器,登录Weblogic AdminServer Console控制台,完成包括:停止服务、删除部署、新增部署、启动服务等一系列操作,升级过程十分繁琐,且过程重复不够灵活。为了解决这一问题,能够使用较少的步骤,统一的流程来同时完成多台服务器的应用部署,仔细研究了相关的实现技术,完成了该说明文档。

二 综述

如上图所示,Machine A、Machine B、Machine B代表3台不同的计算机(类比服务器),每台计算机上的运行着Node Manager,Machine A上的Administration Server可以远程指挥Machine B 和 Machine C上的Node Manager进而实现对受管理服务器(Managed Server),即应用部署服务器的控制。

所以,以下说明需要先从Node Manager的安装和启动开始说起。

三 Node Manager安装与配置

3.1 安装配置domain

目前生产环境中,Weblogic下都已经安装了一个名称为base_domain的域,为了模拟对生产环境的处理,Node Manager的安装以及后续的配置和应用部署都在创建的新域(domain)中进行,安装过程如下。

首先,本地Weblogic安装目录下已经包含了一个base_domain:

切换到如下目录中,双击目录下的config.cmd脚本文件,打开如下的“配置向导”窗口:

修改“域位置”,安装名称为nm_domain的新域

如上图所示,在配置AdminServer“监听地址”时需要注意,默认情况是监听服务器对应的所有IP地址的,也包括localhost,但是若不明确“监听地址”,后续可能出现与其他服务器的Node Manager之间交互异常的问题。

如上,设置访问Node Manager的用户名和密码。

3.2 启动AdminServer

切换目录到:

D:OracleMiddlewareOracle_Homeuser_projectsdomainsnm_domain

双击运行脚本文件“startWebLogic.cmd”,根据提示输入nm_domain配置过程中为AdminServer设置的用户名和密码,即可启动AdminServer

当脚本运行窗口中显示如下所示的提示信息时,表示AdminServer已经启动完成。

<2021-3-5 上午10时14分39,398秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.>

此时,打开浏览器,输入地址:http://{AdminServer监听地址}:7001/console即可打开Admin Server Console登录页面。

登录后,进入如下的管理页面中,后续的90%的操作都可以在这里完成。

3.3 启动domain对应的Node Manager

按照Weblogic的设定,每个domain中只能存在一个Node Manager

如下所示,为domain对应Node Manager的主目录:

目录中的nodemanager.properties中保存了启动Node Manager时会应用的各项属性配置。

切换到如下目录,双击运行“startNodeManager.cmd”脚本即可运行doamin对应的NodeManager

若要停止domain对应的Node Manager的运行,同样切换到该目录下,按照如下指令运行即可:

不过,在生产环境中一般不会启动domain对应的Node Manager,而需要根据domain中的配置来启动host(也就是服务器)对应的Node Manager。

3.4 配置host对应的Node Manager

按照Weblogic中的设定,一个Weblogic中间件中可以包含多个domain,每个domain中可以对应一个Node Manager,另外也可以让每台计算机(服务器)只对应一个Node Manager,也就是host对应的Node Manager,在实现多机分布式部署的过程中,我们需要使用host对应的这种方式来配置和使用Node Manager。

首先,切换目录到“D:OracleMiddlewareOracle_Homeoracle_commoncommon”下并创建新文件夹“nodemanager”,该目录即为host对应Node Manager的主目录:

进入nodemanager文件夹中,创建新文件夹“security”

将如下图所示“D:OracleMiddlewareOracle_Homeuser_projectsdomainsnm_domainnodemanagernodemanager.domains”文件拷贝到“D:OracleMiddlewareOracle_Homeoracle_commoncommonnodemanager”目录下;

将目录切换到“D:OracleMiddlewareOracle_Homeoracle_commoncommonbin”下,分别执行如下3条指令

setWlstEnv.cmd

java utils.CertGen -keyfilepass DemoIdentityPassPhrase -certfile democert -keyfile demokey -cn localhost

(注意:这里的localhost代表的是Node Manager所在的服务器地址,若是远程服务器,需要设置为替换为具体的IP地址)

java utils.ImportPrivateKey -keystore DemoIdentity.jks -storepass DemoIdentityKeyStorePassPhrase -keyfile demokey -keyfilepass DemoIdentityPassPhrase -certfile democert.pem -keyfile demokey.pem -alias demoidentity -storetype jks

3条指令执行完成后,会在当前目录“D:OracleMiddlewareOracle_Homeoracle_commoncommonbin”下生成“DemoIdentity.jks”秘钥库文件,需要将该文件拷贝到“D:OracleMiddlewareOracle_Homeoracle_commoncommonnodemanagersecurity”目录下

以上配置完成后,将目录切换到“D:OracleMiddlewareOracle_Homewlserverserverbin”下,双击执行脚本文件“startNodeManager.cmd”来启动host对应的NodeManager。

若要停止host对应的Node Manager运行,可以双击运行该目录下的脚本“stopNodeManager.cmd”

3.5 将Node Manager安装为服务

由于Node Manager负责远程服务器上的服务启动、应用部署等关键行为,在多机分布式部署过程中起着十分重要的作用,所以需要保证Node Manager在每台服务器上都时刻正常运行。将Node Manager安装为Windows系统的服务,可以保证在操作系统异常重启时Node Manager服务能随之自动启动。

将目录切换到“D:OracleMiddlewareOracle_Homewlserverserverbin”下,执行如下指令:

setWLSEnv.cmd

set NODEMGR_HOST=localhost

(注意:这里的localhost代表的是Node Manager所在的服务器地址,若是远程服务器,需要设置为替换为具体的IP地址)

installNodeMgrSvc.cmd

安装成功后,可以在“任务管理器”-“服务”选项卡下找到如下图所示的服务项目

同时,也可以查看“D:OracleMiddlewareOracle_Homeoracle_commoncommonnodemanager”下的“nodemanager.log”文件内容,该文件为Node Manager的日志文件。

四 模拟环境概述

本地IP地址:192.168.**.**

远程IP地址:192.168.**.**

为了模拟多机部署的环境,我在本地安装启动了一台装有win server 2016(与生产环境相同)的虚拟机,该虚拟机假设为远程服务器。

以上的各种安装和配置都是对本地服务器的操作,接下来就需要在远程服务器上进行安装和

配置。

五 远程服务器配置

5.1 复制domain

为了实现与远程服务器中Node Manager进行通信,需要保证远程的Node Manager与AdminServer所在的服务器的Node Manager配置相同,Weblogic提供了一种复制domain的方式来确保这一点。

以下大操作需要在本地(AdminServer所在服务器)执行。

首先,在“D:Oracle”下创建新文件夹“user_templates”用于存放后续步骤生成的模板文件;

将目录切换到“D:OracleMiddlewareOracle_Homeoracle_commoncommonbin”下,执行如下指令,使用当前的nm_domain配置生成模板文件nm_domain.jar:

pack -domain=D:OracleMiddlewareOracle_Homeuser_projectsdomainsnm_domain -template=D:Oracleuser_templatesnm_domain.jar -template_name="nm_domain template" -managed=true

执行成功后,会在user_templates目录下生成nm_domain.jar文件;

然后,将该模板文件拷贝到远程服务器的相应目录下,用于后续执行:

在远程服务器上,将目录切换到:“C:OracleMiddlewareOracle_Homeoracle_commoncommonbin”下,执行如下指令,完成nm_domain的复制:

unpack -template=C:Oracleuser_templatesnm_domain.jar -domain=C:OracleMiddlewareOracle_Homeuser_projectsdomainsnm_domain

在该指令未执行前,远程服务器上只有一个base_domain

执行指令后,将创建一个新的nm_domain

最后,将目录切换到“C:OracleMiddlewareOracle_Homeuser_projectsdomainsnm_domainconfig”下,将“conifg_bootstrap.xml”重命名为“config.xml”

5.2 配置host对应的Node Manager

参考“3.4”中的步骤即可。

需要注意的是,在执行如下指令时,要将localhost替换为远程服务器的IP地址:

java utils.CertGen -keyfilepass DemoIdentityPassPhrase -certfile democert -keyfile demokey -cn 192.168.31.54(远程服务器IP地址)

5.3 将Node Manager安装为服务

参考“3.5”中的步骤即可。

需要注意的是,在执行如下指令时,应该将localhost替换为远程服务器实际的IP地址:

set NODEMGR_HOST= 192.168.31.54

服务启动后,可以从nodemanager.log中看到,Node Manager对应的host地址为192.168.31.54:

  • 六 受管理服务器配置

按照以上步骤将本地以及远程服务器配置完成,并启动相应的Node Manager服务。

在本地,切换目录到“D:OracleMiddlewareOracle_Homeuser_projectsdomainsnm_domain”,双击“startWebLogic.cmd”脚本文件,启动AdminServer并登录到Admin Server Console中。

以下,对受管理服务器的配置将在AdminServer中完成

6.1 添加“计算机”

依次点击“环境”-“计算机”,打开如下页面:

点击左上角“锁定并编辑”按钮,再点击主页面中的“新增”按钮,进入新增“计算机”的配置页面中

首先新增“Machine-localhost”对应与本地服务器(AdminServer所在服务器)

设置对应Node Manager的“监听地址”和“监听端口”;

完成后,依次点击列表中的“Machine-localhost”- “监视”,查看“节点管理器状态”,若“状态”显示为“可访问”说明能够与Node Manager正常通信,然后点击“激活更改”提交配置。

6.2 添加远程“计算机”

大体步骤相同,但是节点管理器的监听地址要设置为远程服务器的IP地址。

6.3 添加“受管理服务器”

依次点击“环境”- “服务器”进入服务器配置页面中;

点击左上角的“锁定并编辑”,点击主页面中的“新增”按钮进入受管理服务器的新增配置页面;

在该页面中设置受管理服务器的名称、监听地址和端口号

完成以上配置,进入列表页面后,点击“Server-localhost”进入详细配置页面;

在“一般信息”选项卡下,选择对应的“计算机”选项,点击“保存”,点击“激活更改”,完成配置。

6.4 添加远程“受管理服务器”

大体步骤相同,但是监听地址和所选择的“计算机”不同。

6.5 启动“受管理服务器”

在“服务器”主页面中选择“控制”选项卡,勾选需要启动的服务器,点击“启动”按钮,进入确认页面;

直到,状态变更为“RUNNING”为止,受管理服务器即启动成功。

6.6 设置启动参数

生产环境的服务在启动脚本中会设置JVM的启动参数,这些参数也可以在如下所示的功能页面中完成设置,依次点击“服务器”- 点击待设置服务器名称 – “配置” – “服务器启动”。

以上是测试环境参数,生产环境可以依据服务器配置设置。

6.7 日志输出

受Node Manager控制的“受管理服务器”会产生2种日志:

  1. 节点管理器服务实例日志,通常位于“DOMAIN_HOME/servers/server_name/logs/server_name.out”,如下图所示的位置,这里面保存的也就是之前在控制台窗口中显示的日志内容;
  1. Weblogic服务日志文件,通常位于“DOMAIN_HOME/servers/server_name/logs/server_name.log”,如下图所示的位置,日志文件中只包含受管理服务器启动时的信息。

七应用程序部署

7.1 准备工作

由于多机部署的特殊性,要求每台服务器都能够访问到被部署的应用程序包,在Windows Server环境下可以通过共享文件夹或网络驱动器的方式实现。

7.1.1 本地服务器

将待部署的应用程序包“kfwd-web.war”放到“D:share”路径下;

右键点击“share”文件夹选择“属性”打开弹窗,选择“共享”选项卡,点击“共享”按钮进行设置;

输入“everyone”并下拉列表选择“EveryOne”选项,选择成功后,点击“添加”按钮,将“EveryOne”添加到目录中,同时设置权限为“读取/写入”,点击“共享”完成共享操作;

注意:由于我本地添加过多次共享文件夹,系统已经记住了访问的用户名和密码,在未操作过的服务器上执行时,会提示输入用户名和密码。

设置完成后将出现如下的图标

7.2 应用程序部署

应用程序部署前,首先确保待部署的“受管理服务器”状态为“RUNNING”:

部署步骤与此前的部署大体相同,在选择应用程序包时需要输入“Z:”,切换到网络驱动器下进行选择;

选择待部署的服务器;

如下页面中,选择“将此应用程序复制到每个目标”选项;

最后,点击“激活更改”使得部署生效;

部署过程中选择“将此应用程序复制到每个目标”,是为了将应用程序包分发复制到每个受管理服务器的stage目录下,如下图所示,部署激活成功后,该目录下出现了“XXXXX.war”文件。

此时,应用程序是“准备就绪”状态;

选择“控制”- 点击“启动”-“为所有请求提供服务”,并确认成功后,应用程序开始进入部署的下一个阶段,此时只需要等待“状态”变更为“活动”即可;

如下,服务变为“活动”状态后,点击进入设置页面中,选择“测试”,可以看到访问地址,可以点击访问地址,实际测试服务是否正常

原文链接:https://www.csdn.net/tags/MtTacgysNDc3NDQtYmxvZwO0O0OO0O0O.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7237

(0)
上一篇 2022年10月30日 06:48
下一篇 2022年10月30日 06:56

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml