WebLogic 배치 툴을 사용하여 작업 로드 이전

프로비전된 도메인의 모든 리소스 및 애플리케이션을 개별적으로 배치하지 않고 한 번에 배치합니다.

WLDT(WebLogic Deploy Tooling) 를 사용하면 소스 도메인 모델 파일을 업데이트하여 다양한 애플리케이션 및 리소스를 새 도메인의 서버로 대상으로 지정하고 Oracle Cloud Infrastructure로 이전된 데이터베이스와 일치하도록 데이터베이스 접속을 업데이트합니다.

시작하기 전에 다음 사항에 유의하십시오.

  • Oracle Cloud Infrastructure 용 Oracle WebLogic Server 이미지에 대해 생성된 도메인 이름은 프로비전 중 제공한 접두어에 추가된 접미어 _domain가 붙습니다(예: test_domain).

  • 관리되는 서버 이름은 <prefix>_server_<index> 패턴(예: test_server_1, test_server_2, test_server_n) 을 따릅니다. 여기서 n는 프로비전된 노드 수입니다.

  • 관리자 서버의 이름은 <prefix>_adminserver 입니다(예: test__adminserver).

  • WebLogic Enterprise Edition를 프로비전한 경우 관리되는 모든 서버를 포함하는 < prefix >_cluster 라는 클러스터가 프로비전됩니다.

  • 이전에 생성한 데이터베이스에 대한 접속 문자열이 필요합니다.

  • 애플리케이션 파일이 ORACLE_HOME 폴더 구조에 있는 경우 WebLogic 배포 도구에서 사용되지 않으므로 수동으로 이동해야 합니다. 또는 wlsdeploy/applications/<app.ear>와 유사한 폴더 구조를 가진 zip 파일의 애플리케이션 파일을 패키지화하고 SourcePath를 동일한 경로로 변경하여 WebLogic 배포 툴링이 대상의 기본 폴더에 배치됩니다.

  1. 적절한 WebLogic 사용자(일반적으로 oracle) 로, 제대로 구성된 JAVA_HOME를 사용하여 소스 도메인에 WebLogic 배치 툴(WLDT) 을 설치합니다.
    # install weblogic-deploy-tooling
    # Check for the latest version at:
    # https://github.com/oracle/weblogic-deploy-tooling/releases/
    WLSDT_VERSION=1.7.0
    echo $JAVA_HOME
    # download and unzip the package
    wget -qO- https://github.com/oracle/weblogic-deploy-tooling/releases/download/weblogic-deploy-tooling-${WLSDT_VERSION}/weblogic-deploy.zip | $JAVA_HOME/bin/jar xv
    # make the scripts executable
    chmod +x weblogic-deploy/bin/*.sh
  2. 소스 도메인을 검색합니다.

    -domain_type은 기본적으로 WLS로 설정되므로 WLS 도메인에 대해 생략할 수 있습니다. -domain_type JRF의 경우 검색 명령은 JRF 도메인의 경우 마켓플레이스 이미지에 의해 다시 프로비전된 모든 JRF 구성 요소를 필터링합니다. JRF 사용은 모든 도메인의 검색에 적합합니다.

    이 예에서는 .yaml, .zip.properties 파일에 대해 source를 사용합니다. 적합한 파일 이름을 사용할 수 있습니다.

    # path to the parent of the wlserver folder (for example /u01/app/oracle/middleware/)
    MW_HOME=
    # path to the domain folder (i.e. <domain root>/<domain_name>)
    DOMAIN_HOME=
    
    weblogic-deploy/bin/discoverDomain.sh \
        -oracle_home $MW_HOME \
        -domain_home $DOMAIN_HOME \
        -archive_file source.zip \
        -model_file source.yaml \
        -variable_file source.properties \
        -domain_type JRF
    
    # even if the domain is not JRF, using JRF domain type will only filter out domain libraries. If they don’t exist, this will not affect the output.
  3. 파일을 대상 환경의 관리자 서버로 이동합니다.
    SOURCE_IP=<IP of the source WLS server>
    ADMIN_SERVER_IP=<IP of the cloud Administrator server>
    scp <source_user>@${SOURCE_IP}:~/source.* opc@${ADMIN_SERVER_IP}:~/
    
    # change ownership of the files from opc to oracle 
    # and move the file to the oracle user home
    ssh opc@${ADMIN_SERVER_IP}
    sudo chown oracle:oracle source.*
    sudo mv source.* /home/oracle/
    # switch to the oracle user
    sudo su – oracle
  4. Oracle Cloud Infrastructure의 WLS 관리자 서버에 WebLogic 배치 툴을 설치합니다.
    # As the oracle user, install weblogic-deploy-tooling
    WLSDT_VERSION=1.7.0
    wget -qO- https://github.com/oracle/weblogic-deploy-tooling/releases/download/weblogic-deploy-tooling-${WLSDT_VERSION}/weblogic-deploy.zip | $JAVA_HOME/bin/jar xv
    
    # make the scripts executable
    chmod +x weblogic-deploy/bin/*.sh
  5. 대상 도메인 토폴로지와 일치하도록 소스 도메인 모델 파일을 편집합니다.
    • source.yaml: 도메인, 해당 토폴로지(서버, 클러스터 등), 리소스 및 응용 프로그램 배치를 설명하는 모델 파일입니다.

    • source.zip: 애플리케이션 파일을 포함합니다.

    • source.properties: 포트화할 수 없는 인증서에 대한 위치 표시자를 포함합니다.

    주:

    Yaml 파일을 편집할 때는 탭 또는 구문 분석이 아닌 공백을 사용해야 합니다. 또한 Yuaml에서 들여쓰기는 중첩을 나타내므로 최상위 레벨 키를 제거할 때는 동일한 레벨에서 다음 키에 중첩된 모든 항목을 제거해야 합니다.
    1. 섹션 리소스 및 appDeployments만 유지하려면 .yaml 파일을 편집합니다.
      • 전체 domainInfo 섹션을 제거합니다.

      • 전체 topology 섹션을 제거합니다.

      • WebLogic Server Enterprise Edition: resources 아래에 중첩된 각 응용 프로그램, JDBCSystemResource, appDeployment에 대해 Target 키를 편집하여 클러스터 이름이 <domain_prefix>_clusterOracle Cloud Infrastructure의 클러스터 이름(예: ee_cluster) 과 일치시킵니다.

      • WebLogic Server Standard Edition: resources, JDBCSystemResource, appDeployment 아래에 중첩된 각 애플리케이션에 대해 Target 키를 편집하여 애플리케이션이 <domain_prefix>_server_<id> 패턴을 사용하여 대상으로 지정해야 하는 Oracle Cloud Infrastructure의 관리되는 서버 이름 목록과 일치시킵니다. 목록 항목을 콤마로 구분하고 목록을 작은 따옴표 또는 큰 따옴표로 묶습니다. 예: 'se_server_0,se_server_1,se_server_3'

    2. 각 JDBCDriverParams 키 아래에서 데이터 소스의 url을 편집합니다.
      URL은 패턴을 따라야 합니다.
      'jdbc:oracle:thin:@//<hostname>:<port>/<your_pdb_name>.<subdomain_name>'
      여기서 hostname, portsubdomain_name는 데이터베이스 접속 문자열에서 가져온 것이고 your_pdb_name은 CDB 루트 이름이 아니라 데이터베이스를 호스트하는 PDB의 이름입니다.
      • 단일 노드 연결 문자열: <hostname>:<port>/<cdb_root_name>.<db_subnet_domain_name>
      • 복수 노드 연결 문자열: <hostname>-scan:<port>/<cdb_root_name>.<db_subnet_domain_name>

      데이터베이스가 하나의 노드로만 구성된 경우 둘 중 하나를 사용하십시오. 하지만 -scan 구성요소를 포함시켜 적절한 검색을 보장하고 향후 스케일링을 지원하는 것이 좋습니다.

    3. 누락된 경우 StagingMode 키 추가

      appDeployments 아래의 각 애플리케이션에 대해 StagingMode 키가 stage로 설정되어 있는지 확인하거나, 없는 경우 추가합니다. 이 설정은 클러스터의 다른 대상 관리 서버 또는 관리 서버에 파일을 자동으로 배치합니다. 이 설정을 사용하지 않는 경우 각 서버에 파일을 수동으로 배포해야 합니다.

    4. source.properties 파일을 편집하고 이전한 데이터베이스 또는 데이터베이스에 대한 JDBC 접속 비밀번호를 업데이트합니다.
  6. WebLogic Deploy Tooling updateDomain 스크립트를 실행하여 도메인을 업데이트합니다.
    # make sure the needed variables are set:
    echo $DOMAIN_HOME
    echo $MW_HOME
    
    # run WebLogic Deploy Tooling updateDomain script in online mode
    weblogic-deploy/bin/updateDomain.sh \
    -oracle_home $MW_HOME \
    -domain_home $DOMAIN_HOME \
    -model_file source.yaml \
    -variable_file source.properties \
    -archive_file source.zip \
    -admin_url t3://$(hostname -i):9071
    
    # domain deployed before 05/19/2020 may need to use port 7001

    이 예에서 다루는 내용은 다음과 같습니다.

    • -domain_type는 업데이트만이므로 여기에 사용되지 않습니다. -domain_type JRF 옵션(JRF 도메인용) 을 사용하면 온라인 업데이트를 위해 WLDT와 관련된 업데이트 문제가 발생합니다.

    • -admin_url를 사용하려면 hostname -i 명령으로 추출한 관리자 서버 로컬 전용 IP에 t3 프로토콜이 필요합니다. 공용 IP를 통한 HTTP 또는 HTTPS가 작동하지 않습니다.

    • 이 명령에 -admin_url을 제공하면 도메인이 온라인으로 업데이트됩니다. 일부 도메인은 온라인으로 업데이트할 수 없지만, 토폴로지를 수정하지 않는 경우(여기에 해당되지 않음) 대부분의 도메인에서 작동해야 합니다.

    • 온라인으로 업데이트하면 서버를 재시작하지 않고 애플리케이션과 리소스를 배치할 수 있습니다. 오프라인 업데이트를 수행하는 경우 -admin_url 옵션을 제거한 다음 stopWebLogic.shstartWebLogic.sh 스크립트를 사용하여 WebLogic 서버를 중지했다가 다시 시작합니다. startWeblogic.sh &!를 사용하여 백그라운드로 보내고 서로를 해소할 수 있도록 합니다.

    • 오프라인 업데이트를 수행하는 경우 StagingMode=stage 플래그를 적용하려면 서버를 한 번 정지하고 재시작해야 합니다. 첫번째 재시작은 구성을 업데이트하고 두번째 재시작은 StagingMode 배치를 사용으로 설정합니다.