自动化部署ArcGIS WebAdaptor for Linux 工具使用说明

Posted by Keling Ma on 2018-04-16

在Linux上部署ArcGIS WebAdaptor,是一个不太难但是相当繁琐的工作。由于Linux环境的复杂性,在Esri官方推出的ArcGIS_Enterprise_Builder_Linux_106 中也并未涵盖Web Adaptor的部署部分,仍然需要用户自行安装。为了提高效率,同时也降低linux上部署Enterprise的技术门槛,这个工具实现了针对java jdk + tomcat + web adaptor的全自动部署,满足更多测试或生成环境的用户需求。

系统需求

修改主机名为全域名

For RedHad 7.x 或CentOS 7.x版本

1, 通过hostnamectl 命令设置主机全域名,例如:

1
hostnamectl set-hostname beserver.esrichina.com

2, 修改/etc/hosts文件,添加ip 和域名映射,例如:

1
2
3
vim /etc/hosts

192.168.100.66 beserver.esrichina.com beserver

需要root用户的权限,来执行脚本

功能说明

  • 解压缩安装包
  • 部署java jdk和tomcat 到/home/webServer文件夹下
  • 修改/etc/profile文件,添加java环境变量
  • 安装web adaptor到 /home/webadaptor目录下
  • 根据-i 传递的实例名,按次序部署web adaptor到tomcat
  • 自动生成证书,部署目录为:<tomcat根目录>/certs/tomcat.keystore
  • 自动修改配置文件server.xml,修改端口为80,443, 并开启SSL
  • 启动tomcat
  • 删除临时工作空间

使用入门

  • 下载工具到目标linux服务器
  • 打开终端,切换到root用户
  • 通过系统自带的python环境直接运行
    例如:
1
python automated_deploy_arcgis_webadaptor_tool.py -j /home/software/jdk-8u151-linux-x64.tar.gz -t /home/software/apache-tomcat-8.0.47.tar.gz -w /home/software/Web_Adaptor_Java_Linux_106_161911.tar.gz -i 'portal','server'

工具包含了4个参数:
[required] -j 用于指定java jdk的安装tar包
[required] -t 用于指定tomcat的安装tar包
[required] -w 用于指定arcgis web adaptor 的安装tar包
[optional] -i 用于指定需要部署的web adaptor的实例名队列
- 如果-i 不指定,默认自动使用arcgis为实例名;
- 如果指定为’portal’, 那会自动部署为portal 实例名;
- 如果需要在同一个tomcat下部署多个webadapor,那可以在-i参数后面,通过”,”分隔多个实例名,程序会依次部署,例如 -i ‘portal’,’server’。

注意: 在指定多个实例名时, “逗号”后面不要有多余空格,需要连着写入多个实例名。

检测成果

部署好后,可以通过curl命令,在shell中直接检测tomcat配置是否成功。例如:
-检测tomcat http 响应是否正常

1
curl 'http://beserver.esrichina.com'

-检测tomcat https响应是否正常

1
curl 'https://beserver.esrichina.com' -k

-检测web adaptor 实例部署是否正常, 以实例名为arcgis为例

1
curl 'https://hostname/arcgis/webadaptor' -k

工具运行样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
[root@beserver home]# python automated_deploy_arcgis_webadaptor_tool.py -j /home/software/jdk-8u151-linux-x64.tar.gz -t /home/software/apache-tomcat-8.0.47.tar.gz -w /home/software/Web_Adaptor_Java_Linux_106_161911.tar.gz -i 'portal','server'

====================Start unzip tar package====================

('Web adaptor install package path: ', '/home/temp_unzip/WebAdaptor')
('Java jdk deploy path: ', '/home/webServer/jdk1.8.0_151')
('Tomcat deploy path: ', '/home/webServer/apache-tomcat-8.0.47')

====================Write java environment variable to profile====================

JAVA_HOME= /home/webServer/jdk1.8.0_151
CLASSPATH= .:/home/webServer/jdk1.8.0_151/lib/tools.jar:/home/webServer/jdk1.8.0_151/lib/tools.jar
PATH= /home/webServer/jdk1.8.0_151/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin;/home/webServer/jdk1.8.0_151/bin

====================Start install web adaptor====================

/home/temp_unzip/WebAdaptor/Setup -m silent -l yes -d /home/webadaptor

====================Deploy war package to tomcat====================

Deploying instance portal.war

cp -rf /home/webadaptor/arcgis/webadaptor10.6/java/arcgis.war /home/webServer/apache-tomcat-8.0.47/webapps/portal.war
Deploying instance server.war

cp -rf /home/webadaptor/arcgis/webadaptor10.6/java/arcgis.war /home/webServer/apache-tomcat-8.0.47/webapps/server.war
deploy war package successfully!

====================Generate certificat for enable SSL request====================

keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -keystore /home/webServer/apache-tomcat-8.0.47/certs/tomcat.keystore -validity 36500 -dname "CN=beserver.esrichina.com, OU=esrichina, O=esrichina, L=beijing, ST=beijing, C=CN" -storepass '123456' -keypass '123456'

('keystore path: ', '/home/webServer/apache-tomcat-8.0.47/certs/tomcat.keystore')

====================Repair server.xml file====================

repair server.xml successfully!

====================Start tomcat====================

/home/webServer/apache-tomcat-8.0.47/bin/startup.sh
start tomcat successfully!

deploy finished!

下载链接

git: https://github.com/makeling/arcgis_enterprise_automated_tools.git