VM서버 그룹

    VM서버 그룹은 VM서버를 묶어서 관리하기 위한 논리적 단위입니다.

    사용자는 VM서버 그룹과 VM서버를 추가, 수정, 삭제할 수 있습니다. 설정한 VM서버 그룹과 VM서버는 프로젝트 생성(배포대상 환경 설정하기) 또는 VM 배포(VM 배포 추가하기)에서 배포 대상 VM으로 사용할 수 있습니다.

    배포 방식설명
    SSH시큐어 셀(Secure SHell, SSH)을 이용하여 빌드 파이프라인이 실행되는 Jenkins에서 Target VM서버로 직접 배포를 실행합니다.
    • Jenkins → Target VM 으로 SSH 통신이 필요합니다.
    에이전트에이전트 연동하기를 참고하여 에이전트를 Target VM서버에서 실행해야 합니다.
    빌드 파이프라인이 실행되는 Jenkins에서는 직접 배포를 실행하지 않습니다. 실행된 에이전트는 REST API를 이용해 DevOps Console로부터 배포 관련 정보를 수집하고 실행합니다.
    • 배포 파일은 Rollback을 이용하지 않을 경우 DevOps Console에 저장됩니다. (최대 파일크기 200MB 가능)
    • 배포 파일은 Rollback을 사용할 경우 사용자가 선택한 Rollback Artifact Repository에 저장됩니다. (최대 파일 크기는 Rollback Artifact Repository 에서 관리됨)
    • Target VM → DevOps Console 로 REST API 통신이 필요합니다.
    • (Rollback을 사용한경우) Target VM → Rollback Artifact Repository 와 통신이 필요합니다.
    표. SSH 방식 vs 에이전트 방식
    주의

    SSH 혹은 에이전트가 root 권한으로 동작하는 경우, 악의적인 명령어 실행으로 서버 전체를 장악 할 수 있는 위험이 있습니다.

    • root 계정 이외의 다른 계정 사용을 권장합니다.

    VM서버 그룹 시작하기

    VM서버 그룹 관리를 시작하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.

    VM서버 그룹 추가하기

    VM서버 그룹을 추가하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지에서 추가 버튼을 클릭하세요. VM서버 그룹 추가 페이지로 이동합니다.
    4. 기본 정보 입력 후 저장 버튼을 클릭하여 VM서버 그룹 설정을 완료하세요.
      항목설명
      서버그룹명VM서버 그룹 이름을 입력하세요.
      설명설명을 입력하세요.
      타입VM서버그룹의 타입을 선택
      • SSH: VM 배포시 SSH 명령어를 통하여 배포를 수행합니다.
      • 에이전트: VM 배포시 에이전트를 이용하여 배포를 수행합니다. (에이전트 연동하기)
      VM서버
      • 추가: VM서버 그룹에 포함되는 VM서버를 추가 하세요.
      • 삭제: VM서버 그룹에서 삭제하려는 VM서버의 체크박스를 체크하고 삭제를 클릭하여 삭제 하세요.
      표. VM서버 그룹 추가 입력 항목

    VM서버 추가하기

    VM서버를 추가하기 위해서는 해당 VM서버 그룹의 Manager 권한이 필요합니다.

    참고
    VM서버 그룹의 타입에 따라 VM 서버 추가 팝업창이 다르게 열립니다.

    VM서버를 추가하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 VM서버를 추가할 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 추가 버튼을 클릭하세요. VM서버 추가 페이지로 이동합니다.
    5. VM서버 추가 페이지에서 기본 정보 입력 후 추가 버튼을 클릭하여 VM서버 설정을 완료하세요.
      항목설명
      서버명VM서버 이름을 입력하세요.
      설명설명을 입력하세요.
      IPIP를 입력하세요.
      SSH PortSSH 연결시 사용할 VM서버의 port를 입력하세요.
      OSOS를 입력하세요.
      위치위치를 선택하세요.
      인증정보SSH 연결시 사용할 VM서버의 인증정보를 입력하세요.
      Secret Key에이전트가 설치된 VM서버를 인증하기 위한 비밀키입니다.
      표. VM서버 추가 입력 항목

    VM서버 그룹 수정하기

    VM서버 그룹을 수정하기 위해서는 해당 VM서버 그룹의 Manager 권한이 필요합니다.

    VM서버 그룹을 수정하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 수정하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 수정 버튼을 클릭하세요. VM서버 그룹 수정 페이지로 이동합니다.
    5. 수정 완료 후 저장 버튼을 클릭해서 VM서버 그룹 수정을 완료하세요.

    VM서버 수정하기

    VM서버를 수정하기 위해서는 해당 VM서버 그룹의 Manager 권한이 필요합니다.

    VM서버를 수정하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 수정하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지의 VM서버 목록에서 수정하기 원하는 VM서버를 클릭하세요. VM서버 상세 페이지로 이동합니다.
    5. VM서버 상세 페이지에서 수정 버튼을 클릭하면 VM서버 수정 페이지로 이동합니다.
    6. VM서버 수정 페이지에서 수정 완료 후 저장 버튼을 클릭해서 VM서버 수정을 완료하세요.

    VM서버 그룹 삭제하기

    VM서버 그룹을 삭제하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 삭제하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 삭제 버튼을 클릭해서 VM서버 그룹 삭제를 완료하세요.

    VM서버 삭제하기

    VM서버를 삭제하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 삭제하기를 원하는 VM서버의 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 삭제하려는 VM서버를 클릭하세요. VM서버 상세 페이지로 이동합니다.
    5. VM서버 상세 페이지에서 삭제 버튼을 클릭해서 VM서버 삭제를 완료하세요.

    VM서버 그룹 멤버 관리하기

    VM서버 그룹 멤버를 관리하려면 해당 VM서버 그룹의 Manager 권한이 필요합니다.

    VM서버 그룹 멤버 추가하기

    VM서버 그룹의 멤버를 추가하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 멤버 추가하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 사용자 탭을 클릭하세요.
    5. 사용자 탭에서 추가 버튼을 클릭하면 멤버 추가 팝업창이 열립니다.
    6. 설정 완료 후 확인 버튼을 클릭하여 VM서버 그룹 멤버 추가를 완료하세요. (Manager 는 서버그룹의 수정, 삭제할 수 있으며 Member 는 프로젝트 생성이나 파이프라인 추가 시 해당 서버그룹을 활용할 수 있습니다.)

    VM서버 그룹 멤버 삭제하기

    VM서버 그룹의 멤버를 삭제하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 멤버 삭제하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 사용자 탭을 클릭하세요.
    5. 사용자 목록에서 삭제하려는 사용자의 체크박스를 선택하세요.
    6. 삭제 버튼을 클릭하여 선택된 사용자를 VM서버 그룹 멤버에서 삭제하세요.

    VM서버 그룹 권한 신청 관리하기

    VM서버 그룹 권한 신청을 승인 또는 거절하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 권한 신청을 승인할 VM서버 그룹의 권한 신청 항목을 클릭하세요. 표시되는 숫자는 권한이 신청된 숫자입니다. VM서버 그룹 권한 신청 승인 팝업창이 열립니다.
    4. VM서버 그룹 권한 신청 승인 팝업창에서 승인 또는 거절하려는 신청 건을 클릭하세요.
    5. 의견 입력 후, 승인 또는 거절 버튼을 클릭하세요.
    참고
    권한 신청을 거절하려면 의견입력이 필수입니다.

    VM서버 그룹 권한 승인 이력 조회하기

    VM서버 그룹 권한 신청 승인 이력을 조회하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 조회할 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
    4. VM서버 그룹 상세 페이지에서 승인 이력 탭을 클릭하세요.

    VM서버 방화벽 해제하기

    SSH 방식

    SSH 방식 VM배포는 시큐어 셀(Secure SHell, SSH)을 이용하여 Jenkins → Target VM서버로 직접 배포를 진행합니다.

    참고

    배포를 위한 방화벽 해제정보

    • Source IP: 파이프라인 구성시 선택한 Jenkins IP
    • Target IP: 배포하려는 VM서버 IP

    방화벽을 해제하려면 다음 절차를 따르세요.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지에서 방화벽 신청 안내 링크를 클릭하세요. 방화벽 신청 안내 팝업창이 열립니다.
    4. Jenkins 방화벽 정보가 나타납니다.
      • 해당 정보들은 Jenkins 툴 정보 등록 시 입력한 내용이 보여지며, 툴 등록 시 입력하지 않은 경우 빈값으로 보일 수 있습니다.
      • 필요한 경우 해당 툴 관리자에 문의하세요.

    에이전트 방식

    에이전트 방식 VM배포는 에이전트를 Target VM서버에서 실행해야 합니다. 실행된 에이전트는 DevOps Console로부터 정보를 수집하여 배포를 진행합니다.

    참고
    배포를 위한 방화벽 해제정보
    • Source IP: 배포하려는 VM서버 IP
    • Target IP: DevOps Console IP, (Rollback을 사용한 경우) Rollback Artifact Repository IP
    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지에서 에이전트 설치 안내 링크를 클릭하세요. 에이전트 설치 안내 팝업창이 열립니다.
    4. DevOps Console 방화벽 상세정보와 사용자 가이드 바로가기에이전트 파일 다운로드 링크가 나타납니다.

    에이전트 연동하기

    에이전트 방식 VM배포는 에이전트를 Target VM서버에서 실행해야 합니다. 실행된 에이전트는 DevOps Console로부터 정보를 수집하여 배포를 수행합니다.

    에이전트 연동전 준비사항

    VM 서버 준비사항

    Java 설치

    에이전트는 Java 8 기준으로 작성 및 테스트 되었습니다. Target VM서버에 Java 8 이상의 버전을 설치하세요.

    방화벽 해제 및 hosts 파일 수정

    에이전트는 REST API를 이용해 DevOps Console로부터 배포 수행 정보를 수집하기 때문에 에이전트가 실행된 Target VM에서 DevOps Console로 8443 port 통신이 필요합니다.

    추가로 Rollback을 사용하는 경우에는 Rollback Artifact Repository 와의 통신도 필요합니다.

    필요한 경우, 방화벽 해제 또는 hosts 파일 등록 등의 작업이 필요할 수 있습니다. 방화벽 정보는 DevOps Console 의 에이전트 설치 안내(에이전트 방식) 팝업창을 참고하세요.

    DevOps Console 준비사항

    인증키 준비

    Target VM서버에서 에이전트 실행 시 에이전트의 인증이 필요합니다. 인증을 위한 사용자 인증키와 비밀키를 생성하세요. (인증키 관리하기)

    VM 서버 Secret Key 준비

    Target VM서버에서 에이전트 실행 시 에이전트와 매칭되는 VM서버의 인가를 위하여 Secret Key 값이 필요합니다.

    에이전트 타입의 VM서버 그룹 및 VM서버 추가 시 VM서버 Secret Key가 자동 생성됩니다. 이후에도 VM서버 상세 페이지에서 확인할 수 있습니다.

    참고
    에이전트 연동 시 입력한 Secret Key 뿐 아니라 VM서버의 실제 OS명, IP(IPv4)가 DevOps Console에 등록한 정보와 일치해야 연동이 됩니다.

    에이전트 실행하기

    에이전트 파일 다운로드하기

    에이전트 설치 안내 팝업창에서 에이전트 실행 파일을 다운로드 받을 수 있습니다.

    1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
    2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
    3. VM서버 그룹 페이지에서 에이전트 설치 안내 링크를 클릭하세요. 에이전트 설치 안내 팝업창이 열립니다.
    4. 에이전트 설치 안내 팝업창에서 에이전트 파일 다운로드 버튼을 클릭하세요.
    5. deploy-agent.jar 파일이 다운로드 됩니다.

    직접 에이전트 실행하기

    Target VM서버에서 에이전트를 실행하려면 다음 절차를 따르세요.

    1. Target VM 서버에서 디렉토리를 생성하세요.
    2. deploy-agent.jar 파일을 해당 디렉토리에 옮기세요.
    3. 아래 Usage를 참고하여 에이전트를 실행 하세요.
      배경색 변경
      usage: java -jar deploy-agent.jar -A <arg> -L <arg> [-P <arg>] -S <arg> -V <arg>
       -A,--accessKey <arg>               AccessKey for HMAC
       -L,--serverUrl <arg>               Api server url
       -P,--loggingConfigFilePath <arg>   Path to the property file with 'java.util.logging' settings
       -S,--secretKey <arg>               SecretKey for HMAC
       -V,--vmSecretKey <arg>             VM SecretKey
      usage: java -jar deploy-agent.jar -A <arg> -L <arg> [-P <arg>] -S <arg> -V <arg>
       -A,--accessKey <arg>               AccessKey for HMAC
       -L,--serverUrl <arg>               Api server url
       -P,--loggingConfigFilePath <arg>   Path to the property file with 'java.util.logging' settings
       -S,--secretKey <arg>               SecretKey for HMAC
       -V,--vmSecretKey <arg>             VM SecretKey
      배포용 에이전트 실행 Usage
    항목설명
    -A, –accessKey사용자 인증키로 생성한 인증키
    -L, –serverUrlDevOps Console의 API URL 경로
    ex) https://{DEVOPS_CONSOLE_URL}:8443/devops-console-api
    -P, –loggingConfigFilePath에이전트 로그 파일 경로
    입력하지 않으면 {JAVA_HOME}\jre\lib\logging.properties 파일이 적용됩니다.
    -S, –secretKey사용자 인증키로 생성한 비밀키
    -V, –vmSecretKeyVM 서버에서 생성한 비밀키
    표. 직접 에이전트 실행 옵션 항목

    스크립트 파일로 에이전트 실행하기

    Target VM서버에서 스크립트를 이용하여 에이전트를 실행하려면 다음 절차를 따르세요.

    1. Target VM 서버에서 디렉토리를 생성하세요.
    2. deploy-agent.jar 파일을 해당 디렉토리에 옮기세요.
    3. 아래 샘플 실행 스크립트를 참고하여 파일을 생성하세요.
    4. 샘플 실행 스크립트의 정보를 수정하세요.
      • DC_URL, ACCESS_KEY, SECRET_KEY, VM_SECRET_KEY
    5. 스크립트를 실행하세요.

    리눅스 샘플 스크립트

    리눅스 샘플 스크립트
    배경색 변경
    #!/bin/sh
    
    JAVA_EXE="java"
    DC_URL="https://devops-console-url.com:8443/devops-console-api"
    ACCESS_KEY="user-access-key"
    SECRET_KEY="user-secret-key"
    VM_SECRET_KEY="vm-secret-key"
    
    start()
    {
      [ -f deploy-agent.jar ] || { echo "ERROR: deploy-agent.jar file does not exist."; exit 1; }
      echo "Starting Deploy Agent..."
      $JAVA_EXE -jar deploy-agent.jar -A $ACCESS_KEY -S $SECRET_KEY -V $VM_SECRET_KEY -L $DC_URL > deploy-agent.log 2>&1 &
      PID=`ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}'`
      echo "Process ID : $PID"
      echo $PID > deploy-agent.pid
      echo "Done."
    }
    stop()
    {
      echo "Shutdown Deploy Agent..."
      ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}' | xargs kill
      echo "Done."
    }
    
    case "$1" in
      start)
        start
        ;;
      stop)
        stop
        ;;
      restart)
        stop
        start
        ;;
      *)
        echo $ "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
    esac
    exit 0
    #!/bin/sh
    
    JAVA_EXE="java"
    DC_URL="https://devops-console-url.com:8443/devops-console-api"
    ACCESS_KEY="user-access-key"
    SECRET_KEY="user-secret-key"
    VM_SECRET_KEY="vm-secret-key"
    
    start()
    {
      [ -f deploy-agent.jar ] || { echo "ERROR: deploy-agent.jar file does not exist."; exit 1; }
      echo "Starting Deploy Agent..."
      $JAVA_EXE -jar deploy-agent.jar -A $ACCESS_KEY -S $SECRET_KEY -V $VM_SECRET_KEY -L $DC_URL > deploy-agent.log 2>&1 &
      PID=`ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}'`
      echo "Process ID : $PID"
      echo $PID > deploy-agent.pid
      echo "Done."
    }
    stop()
    {
      echo "Shutdown Deploy Agent..."
      ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}' | xargs kill
      echo "Done."
    }
    
    case "$1" in
      start)
        start
        ;;
      stop)
        stop
        ;;
      restart)
        stop
        start
        ;;
      *)
        echo $ "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
    esac
    exit 0
    리눅스 샘플 스크립트

    윈도우 샘플 스크립트

    윈도우 샘플 스크립트
    배경색 변경
    @ECHO OFF
    
    SET JAVA_EXE="java"
    SET DC_URL="https://devops-console-url.com:8443/devops-console-api"
    SET ACCESS_KEY="user-access-key"
    SET SECRET_KEY="user-secret-key"
    SET VM_SECRET_KEY="vm-secret-key"
    
    IF NOT EXIST deploy-agent.jar (
        ECHO "ERROR: deploy-agent.jar file does not exist."
        EXIT /b 0
    )
    ECHO "Starting Deploy Agent..."
    %JAVA_EXE% -jar deploy-agent.jar -A %ACCESS_KEY% -S %SECRET_KEY% -V %VM_SECRET_KEY% -L %DC_URL%
    
    EXIT /b 0
    @ECHO OFF
    
    SET JAVA_EXE="java"
    SET DC_URL="https://devops-console-url.com:8443/devops-console-api"
    SET ACCESS_KEY="user-access-key"
    SET SECRET_KEY="user-secret-key"
    SET VM_SECRET_KEY="vm-secret-key"
    
    IF NOT EXIST deploy-agent.jar (
        ECHO "ERROR: deploy-agent.jar file does not exist."
        EXIT /b 0
    )
    ECHO "Starting Deploy Agent..."
    %JAVA_EXE% -jar deploy-agent.jar -A %ACCESS_KEY% -S %SECRET_KEY% -V %VM_SECRET_KEY% -L %DC_URL%
    
    EXIT /b 0
    윈도우 샘플 스크립트

    안내
    • java 8 이상에서 실행 가능합니다.
    • jar 파일 실행 위치를 {WORKSPACE} 로 가정합니다.
    • {WORKSPACE} 에 backup,logs 등의 추가적인 디렉토리가 생성됩니다.
    • -loggingConfigFilePath 를 입력하지 않으면 {JAVA_HOME}\jre\lib\logging.properties 파일이 적용됩니다.
    • {WORKSPACE}/backup 아래 배포 관련 파일들이 저장됩니다.
    • 배포 관련 파일은 배포에 성공한 것 중 최근 3개만 유지합니다.
    • deploy-agent.jar 전체 로그는 자동 저장되지 않습니다. 전체 로그 중 배포 관련 로그만 {WORKSPACE}/logs 에 저장됩니다.
    • log 는 30일간 유지합니다.

    에이전트 문제해결

    로그 레벨 변경하기

    필요한 경우, 에이전트 로그 레벨을 변경할 수 있습니다. 아래 샘플 로그 파일을 참고하여 -P, --loggingConfigFilePath 옵션을 추가하세요.

    샘플 로그파일

    배경색 변경
    ############################################################
    #      Default Logging Configuration File
    #
    # You can use a different file by specifying a filename
    # with the java.util.logging.config.file system property.
    # For example java -Djava.util.logging.config.file=myfile
    ############################################################
    
    ############################################################
    #      Global properties
    ############################################################
    
    # "handlers" specifies a comma separated list of log Handler
    # classes.  These handlers will be installed during VM startup.
    # Note that these classes must be on the system classpath.
    # By default we only configure a ConsoleHandler, which will only
    # show messages at the INFO and above levels.
    handlers= java.util.logging.ConsoleHandler
    
    # To also add the FileHandler, use the following line instead.
    #handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
    
    # Default global logging level.
    # This specifies which kinds of events are logged across
    # all loggers.  For any given facility this global level
    # can be overriden by a facility specific level
    # Note that the ConsoleHandler also has a separate level
    # setting to limit messages printed to the console.
    #.level= INFO
    .level= FINE
    
    ############################################################
    # Handler specific properties.
    # Describes specific configuration info for Handlers.
    ############################################################
    
    # default file output is in user's home directory.
    java.util.logging.FileHandler.pattern = %h/java%u.log
    java.util.logging.FileHandler.limit = 50000
    java.util.logging.FileHandler.count = 1
    java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
    
    # Limit the message that are printed on the console to INFO and above.
    #java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
    
    # Example to customize the SimpleFormatter output format
    # to print one-line log message like this:
    #     <level>: <log message> [<date/time>]
    #
    # java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
    
    ############################################################
    # Facility specific properties.
    # Provides extra control for each logger.
    ############################################################
    
    # For example, set the com.xyz.foo logger to only log SEVERE
    # messages:
    com.xyz.foo.level = SEVERE
    ############################################################
    #      Default Logging Configuration File
    #
    # You can use a different file by specifying a filename
    # with the java.util.logging.config.file system property.
    # For example java -Djava.util.logging.config.file=myfile
    ############################################################
    
    ############################################################
    #      Global properties
    ############################################################
    
    # "handlers" specifies a comma separated list of log Handler
    # classes.  These handlers will be installed during VM startup.
    # Note that these classes must be on the system classpath.
    # By default we only configure a ConsoleHandler, which will only
    # show messages at the INFO and above levels.
    handlers= java.util.logging.ConsoleHandler
    
    # To also add the FileHandler, use the following line instead.
    #handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
    
    # Default global logging level.
    # This specifies which kinds of events are logged across
    # all loggers.  For any given facility this global level
    # can be overriden by a facility specific level
    # Note that the ConsoleHandler also has a separate level
    # setting to limit messages printed to the console.
    #.level= INFO
    .level= FINE
    
    ############################################################
    # Handler specific properties.
    # Describes specific configuration info for Handlers.
    ############################################################
    
    # default file output is in user's home directory.
    java.util.logging.FileHandler.pattern = %h/java%u.log
    java.util.logging.FileHandler.limit = 50000
    java.util.logging.FileHandler.count = 1
    java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
    
    # Limit the message that are printed on the console to INFO and above.
    #java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
    
    # Example to customize the SimpleFormatter output format
    # to print one-line log message like this:
    #     <level>: <log message> [<date/time>]
    #
    # java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n
    
    ############################################################
    # Facility specific properties.
    # Provides extra control for each logger.
    ############################################################
    
    # For example, set the com.xyz.foo logger to only log SEVERE
    # messages:
    com.xyz.foo.level = SEVERE
    샘플 로그파일

    IP 인식이 안될 경우

    에이전트 연동 시 입력한 Secret Key 뿐 아니라 VM서버의 실제 OS 명과 IP(IPv4)가 DevOps Console에 등록한 정보와 일치해야 연동이 됩니다.

    일부 다중 네트워크 장비가 설치된 VM서버의 경우, 에이전트가 IP를 제대로 인식하지 못할 수 있습니다. 이러한 경우 아래처럼 IP와 hostname 설정을 /etc/hosts 파일에 추가하세요.

    hostname 확인 절차
    그림. hostname 확인 절차