移轉應用程式並設定來源

移轉 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/。