...
Code Block | ||
---|---|---|
| ||
#!/bin/sh ################################################# # # # Configuration for Playce RoRo # # # ################################################# # Set JAVA_HOME when default java version is not JDK 11 #JAVA_HOME=/usr/lib/jvm/java-11 # Port offset for HTTP PORT_OFFSET=2 # Working directory for RoRo (Inventory, Assessment, Migration and etc.) WORKING_DIR=/playce/roro # DB Connection URL 연결할 데이터데이스 URL을 입력합니다. 아래 예시는 MariaDB 기준으로 작성되었습니다. # 3.5.0 부터는 jdbc:log4jdbc:mariadb://가 아닌 jdbc:mariadb://를 사용합니다. DB_URL=jdbc:mariadb://localhost:3306/rorodb # DB Username (데이터베이스 사용자를 입력합니다.) DB_USERNAME=playce # DB Password (데이터베이스 패스워드를 입력합니다.) DB_PASSWORD=playce # Bucket name to save disk images for migration (AWS or GCP) BUCKET_NAME= # Bucket region about given bucket name for migration (AWS) BUCKET_REGION= if [ e$WORKING_DIR = "e" ] ; then echo "[Error] WORKING_DIR must be set." exit; fi if [ e$DB_USERNAME = "e" ] ; then echo "[Error] DB_USERNAME must be set." exit; fi if [ e$DB_PASSWORD = "e" ] ; then echo "[Error] DB_PASSWORD must be set." exit; fi if [ e$BUCKET_NAME = "e" ] ; then echo "[Warning] BUCKET_NAME is empty and migration will be failed." fi if [ e$BUCKET_REGION = "e" ] ; then echo "[Warning] BUCKET_REGION is empty and migration to AWS will be failed." fi # 로그파일 경로(Log file path) JAVA_OPTS="$JAVA_OPTS -DLOG_PATH=$CATALINA_HOME/logs/" JAVA_OPTS="$JAVA_OPTS -Dlogging.file.name=$CATALINA_HOME/logs/playce-roro.log" # 파일 인코딩(File encoding) JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8 -Dfile.client.encoding=UTF-8" # 추가 설정(Additional config) JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m" JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC" JAVA_OPTS="$JAVA_OPTS -XX:+UseLargePagesInMetaspace" JAVA_OPTS="$JAVA_OPTS -XX:+ExplicitGCInvokesConcurrent" JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC" JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=512m" JAVA_OPTS="$JAVA_OPTS -XX:-UseCodeCacheFlushing" JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom" JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" JAVA_OPTS="$JAVA_OPTS -Djava.security.properties=$CATALINA_HOME/conf/security/java.security" JAVA_OPTS="$JAVA_OPTS -Dhttp.port=$(expr 8080 + $PORT_OFFSET)" JAVA_OPTS="$JAVA_OPTS -Dajp.port=$(expr 8009 + $PORT_OFFSET)" JAVA_OPTS="$JAVA_OPTS -Dssl.port=$(expr 8443 + $PORT_OFFSET)" JAVA_OPTS="$JAVA_OPTS -Dshutdown.port=$(expr 8005 + $PORT_OFFSET)" # 사전 환경 분석(prerequisite), 평가 수행(assessment), 마이그레이션(migration) 스케줄러 사용여부를 설정합니다. JAVA_OPTS="$JAVA_OPTS -Denable.prerequisite.schedule=true" JAVA_OPTS="$JAVA_OPTS -Denable.assessment.schedule=true" JAVA_OPTS="$JAVA_OPTS -Denable.migration.schedule=true" # 서버 모니터링 및 주기적 스캔 주기를 설정합니다. # 서버 모니터링 및 주기적 스캔 여부는 RoRo Console의 Settings 메뉴에서 제어합니다. JAVA_OPTS="$JAVA_OPTS -Dscheduler.schedule.monitoring.cron='0 0 0/3 * * ?'" JAVA_OPTS="$JAVA_OPTS -Dscheduler.schedule.scheduled-scan.cron='0 0 0 * * ?'" # SSH 실행 결과 첫 라인에 [YOU HAVE NEW MAIL]과 같은 시스템 메시지가 포함되는 경우 해당 라인은 제외시킬 수 있는 키워드를 등록한다. # 대소문자 구분은 없으며 apple,banana|dog,cat 과 같이 여러 세트의 단어를 입력할 수 있으며 실행 결과 첫 라인에 "apple" & "banana"를 포함하거나 "dog" & "cat"을 포함하는지 체크한다. #JAVA_OPTS="$JAVA_OPTS -Dssh.skip.messages=you,have,mail" # BouncyCastleProvider를 java.security의 첫 번째 인덱스로 추가한다.(DH 키 사이즈가 64의 배수가 아닐 때 사용) #JAVA_OPTS="$JAVA_OPTS -Dssh.use.bouncy.castle=true" # SSH Connection Timeout (초) JAVA_OPTS="$JAVA_OPTS -Dssh.connect.timeout=10" # 상기 설정한 데이터베이스 정보를 사용하기 위해 설정합니다. JAVA_OPTS="$JAVA_OPTS -Dspring.datasource.url='$DB_URL'" JAVA_OPTS="$JAVA_OPTS -Dspring.datasource.username='$DB_USERNAME'" JAVA_OPTS="$JAVA_OPTS -Dspring.datasource.password='$DB_PASSWORD'" # RoRo Migration config (마이그레이션 정보를 설정합니다.) JAVA_OPTS="$JAVA_OPTS -Droro.migration.bucket.name=$BUCKET_NAME" JAVA_OPTS="$JAVA_OPTS -Droro.migration.bucket.region=$BUCKET_REGION" JAVA_OPTS="$JAVA_OPTS -Droro.migration.bucket.remove=true" JAVA_OPTS="$JAVA_OPTS -Droro.migration.include.system.uid=false" # RoRo working directory JAVA_OPTS="$JAVA_OPTS -Droro.working.dir-path=$WORKING_DIR" |
...