迁移应用程序并配置源

迁移 Apache Tomcat 应用程序 WAR 文件并将数据源配置为指向云中的新数据库。

迁移 Apache Tomcat 应用程序

Apache Tomcat 应用程序 WAR 文件迁移到目标 Tomcat 服务器。

  1. 从 Terraform 输出收集 Tomcat 服务器 IP 地址。
  2. 设置堡垒服务器的 PUBLIC IP。
    export BASTION_IP=Bastion Public IP
  3. 设置 Tomcat 服务器的 PRIVATE IP。
    export TOMCAT_IP=Private IP of the Tomcat server
  4. 将应用程序 WAR 文件复制到目标 Tomcat 服务器。
    # go to the location of the tomcat webapps folder
    cd /usr/local/tomcat/webapps/
    # scp the war files to the target tomcat server.
    scp -o ProxyCommand="ssh -W %h:%p
    opc@${BASTION_IP}” application.war opc@${TOMCAT_IP}:~/
  5. 通过堡垒主机到目标 Tomcat 服务器的 SSH。
    ssh -o ProxyCommand="ssh -W %h:%p
          opc@${BASTION_IP}” opc@${TOMCAT_IP}
  6. 将文件复制到部署文件夹
    sudo cp application.war /var/lib/tomcat/webapps/
  7. 验证部署是否按预期进行。
    cd /var/lib/tomcat/webapps/
    ls -lh
    部署 war 文件时,将在目录中创建一个名为 application 的新文件夹。部署可能需要几秒钟的时间,因此,如果您一开始没有看到文件夹,请重试 ls -lh 命令。

配置数据源

为每个 Apache Tomcat 服务器部署和配置数据源。

  1. 打开 /etc/tomcat/ 目录中的 server.xml 文件进行编辑。
  2. 在现有 GlobalNamingResources 部分中添加以下部分。

    确保将 USER_NAMECONNECTION_NAMEUSER_PASSWORDATP_DB_NAME 替换为连接中的信息。

    <Resource name="jdbc/CONNECTION_NAME"
          global="jdbc/CONNECTION_NAME"
          auth="Container"
          type="javax.sql.DataSource"
          username="USERNAME"
          password="USER_PASSWORD"
          driverClassName="oracle.jdbc.OracleDriver"
          description="My DB"
    url="jdbc:oracle:thin:@ATP_DB_NAME_tp?TNS_ADMIN=/etc/tomcat/wallet"
          maxActive="15"
          maxIdle="3"/>
  3. 保存文件。
  4. 打开 context.xml 文件进行编辑。
  5. Context / 标记中添加以下部分以添加连接:

    如果您的应用程序包含自己的 context.xml 文件,则可能无需执行此步骤。

    <ResourceLink name="jdbc/CONNECTION_NAME"
        global="jdbc/CONNECTION_NAME"
        type="javax.sql.DataSource"/>
  6. 重新启动 Tomcat。
    sudo systemctl restart tomcat
  7. 请确保正确部署了应用程序。在单个服务器上,使用以下命令:
    curl http://localhost:8080/Application_name
  8. 重复步骤 1 至 7,为每个 Tomcat 服务器配置部署和数据源。
  9. 要验证应用程序是否由负载平衡器提供服务,请从 Terraform 输出获取负载平衡器公共 IP,然后转到http://LOAD_BALANCER_IP/Application_name/。