Skip to main content

업그레이드 패키지를 사용하여 업그레이드

업그레이드 패키지를 사용하여 GitHub Enterprise Server를 최신 기능 릴리스로 업그레이드하는 방법을 알아봅니다.

관리 셸을 사용하여 ghe-upgrade 유틸리티로 업그레이드 패키지를 설치할 수 있습니다.

백 투 백 기능 버전 업그레이드를 실행하는 경우 다음 업그레이드를 기능 릴리스로 진행하기 전에 백그라운드 작업이 완료되었는지 확인해야 합니다. GitHub에서는 두 번째 업그레이드를 하기 전에 백그라운드 업그레이드 작업이 완료될 때까지 기다리는 것이 좋습니다. 업그레이드 프로세스 개요업그레이드 요구 사항을(를) 참조하세요.

핫패치를 사용하여 기능 시리즈 내의 최신 패치 릴리스로 업그레이드할 수 있는 반면, 최신 기능 릴리스로 업그레이드하려면 업그레이드 패키지를 사용해야 합니다. 예를 들어, 2.11.10에서 2.12.4로 업그레이드하려면 서로 다른 기능 시리즈에 속해 있기 때문에 업그레이드 패키지를 사용해야 합니다.

업그레이드 패키지를 사용하여 독립 실행형 인스턴스 업그레이드

참고 항목

자동 업데이트 검사를 사용하도록 설정한 경우 업그레이드 패키지를 다운로드할 필요가 없으며 자동으로 다운로드된 파일을 사용할 수 있습니다. 자세한 내용은 자동 업데이트 검사 사용을(를) 참조하세요.

  1. 에 SSH합니다. 인스턴스가 여러 노드로 구성된 경우(예: 고가용성 또는 지역 복제가 구성된 경우) 주 노드에 대한 SSH를 수행합니다. 클러스터를 사용하는 경우 임의 노드에 대해 SSH를 수행할 수 있습니다. HOSTNAME을 인스턴스의 호스트 이름 또는 노드의 호스트 이름이나 IP 주소로 바꿉니다. 자세한 내용은 관리 셸(SSH)에 액세스을(를) 참조하세요.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. GitHub Enterprise Server 릴리스 페이지로 이동합니다. 업그레이드할 릴리스 옆에 있는 다운로드를 클릭한 다음 업그레이드 탭을 클릭합니다. 적절한 플랫폼을 선택하고 업그레이드 패키지(.pkg 파일)의 URL을 복사합니다.

  3. curl을 사용하여 업그레이드 패키지를 GitHub Enterprise Server 인스턴스로 다운로드합니다.

    admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
    
  4. 유지 관리 모드를 사용하도록 설정하고 GitHub Enterprise Server 인스턴스에서 모든 활성 프로세스가 완료되기를 기다립니다. 유지 관리 모드 사용 설정 및 예약을(를) 참조하세요.

    참고 항목

    고가용성 구성의 주 노드를 업그레이드할 때 업그레이드 패키지를 사용하여 주 노드 업그레이드의 지침을 따르는 경우 인스턴스가 이미 유지 관리 모드에 있어야 합니다.

  5. 패키지 파일 이름을 사용하여 ghe-upgrade 명령을 실행합니다.

    admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg
    *** verifying upgrade package signature...
    
  6. 업그레이드를 계속하고 패키지 서명이 확인된 후 다시 시작하도록 확인합니다. 새 루트 파일 시스템이 보조 파티션에 쓰고, 인스턴스가 유지 관리 모드에서 자동으로 다시 시작됩니다.

    *** applying update...
    This package will upgrade your installation to version VERSION-NUMBER
    Current root partition: /dev/xvda1 [VERSION-NUMBER]
    Target root partition:  /dev/xvda2
    Proceed with installation? [y/N]
    
  7. 필요에 따라 기능 릴리스로 업그레이드하는 동안 ghe-migrations 유틸리티를 사용하여 데이터베이스 마이그레이션의 상태 모니터링할 수 있습니다. 명령줄 유틸리티을(를) 참조하세요.

  8. 인스턴스가 다시 시작되면 백그라운드에서 업그레이드가 계속됩니다. 프로세스가 완료될 때까지 유지 관리 모드를 설정 해제할 수 없습니다.

    백그라운드 작업의 상태를 확인하려면 ghe-check-background-upgrade-jobs 유틸리티를 사용합니다. 백 투 백 업그레이드를 실행하는 경우 다음 업그레이드를 기능 릴리스로 진행하기 전에 백그라운드 작업이 완료되었는지 확인해야 합니다.

    명령줄 유틸리티을(를) 참조하세요.

    구성 실행의 진행률을 모니터링하려면 /data/user/common/ghe-config.log에서 출력을 읽습니다. 예를 들어 다음 명령을 실행하여 로그 파일의 끝부분을 확인할 수 있습니다.

    tail -f /data/user/common/ghe-config.log
    
  9. 필요에 따라 지정된 IP 주소 목록에 액세스할 수 있도록 IP 예외 목록을 구성하여 업그레이드한 후에 업그레이드의 유효성을 검사합니다. 유지 관리 모드 사용 설정 및 예약을(를) 참조하세요.

  10. 단일 노드 업그레이드의 경우 사용자가 GitHub Enterprise Server 인스턴스을(를) 사용할 수 있도록 유지 관리 모드 사용 중지를 포함해 모든 업그레이드 후 작업을 수행합니다.

    참고 항목

    고가용성 구성의 인스턴스를 업그레이드하는 경우 모든 복제본 노드가 업그레이드되고 복제가 최신 상태가 될 때까지 유지 관리 모드를 유지해야 합니다. 업그레이드 패키지를 사용하여 추가 노드 업그레이드를 참조하세요.

업그레이드 패키지를 사용하여 여러 노드가 있는 인스턴스 업그레이드

업그레이드 패키지를 사용하여 여러 노드로 구성된 인스턴스를 업그레이드하려면 주 노드를 업그레이드한 다음 추가 노드를 업그레이드해야 합니다.

업그레이드 패키지로 주 노드 업그레이드

경고

복제가 중지된 경우 주 노드에서 오류가 발생하면 복제본이 업그레이드되고 복제가 다시 시작되기 전에 수행된 모든 작업이 손실됩니다.

  1. 주 노드에서 유지 관리 모드를 사용하도록 설정하고 모든 활성 프로세스가 완료되기를 기다립니다. 유지 관리 모드 사용 설정 및 예약을(를) 참조하세요.

  2. 포트 122에서 admin 사용자로 SSH를 통해 복제본 노드에 연결합니다.

    ssh -p 122 admin@REPLICA_HOST
    
  3. 모든 노드에서 복제본을 중지하려면 각 노드에서ghe-repl-stop을(를) 실행합니다. 또는 복제본이 여러 개 있는 경우 대신 주 노드에서 ghe-repl-stop-all을 실행하여 한번의 실행으로 복제를 중지합니다.

  4. 주 노드를 업그레이드하려면 업그레이드 패키지를 사용하여 독립 실행형 인스턴스 업그레이드의 지침을 따릅니다.

업그레이드 패키지를 사용하여 추가 노드 업그레이드

  1. 노드를 업그레이드하려면 업그레이드 패키지를 사용하여 독립 실행형 인스턴스 업그레이드의 지침을 따릅니다.

  2. 포트 122에서 admin 사용자로 SSH를 통해 복제본 노드에 연결합니다.

    ssh -p 122 admin@REPLICA_HOST
    
  3. 다음을 실행하여 업그레이드를 확인합니다.

    ghe-version
    
  4. 복제본 노드에서 복제를 시작하려면 ghe-repl-start를 실행합니다.또는 복제본이 여러 개 있는 경우 대신 주 노드에서 ghe-repl-start-all을 실행하여 한번의 실행으로 복제를 시작합니다.

  5. 복제본 노드에서 복제 서비스가 올바르게 실행되고 있는지 확인하려면 ghe-repl-status를 실행합니다. 성공적인 복제가 진행 중이고 복제본이 업그레이드된 경우 이 명령은 모든 서비스에 대해 OK를 반환합니다. 명령이 Replication is not running을(를) 반환하면 복제가 여전히 시작 중일 수 있습니다. ghe-repl-status을(를) 다시 실행하기 전에 1분 정도 기다립니다.

참고 항목

  • 다시 동기화가 진행 중인 동안 ghe-repl-status이(가) 복제본이 뒤처진 것임을 표시할 수 있습니다. 예를 들어 다음과 같은 메시지가 표시될 수 있습니다.

    CRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists
    
  • GitHub Actions이(가) GitHub Enterprise Server 인스턴스에서 사용하도록 설정된 경우 다음과 같은 메시지가 표시될 수 있습니다. 이 메시지는 기본 어플라이언스 설정되는 유지 관리 모드로 인해 복제본이 일시 중지될 때 필요합니다. 유지 관리 모드가 설정되지 않은 경우, 이 메시지를 확인해야 합니다.

    CRITICAL: mssql replication is down, didn't find Token_Configuration!
    

ghe-repl-statusOK를 반환하지 않고 설명이 위 메모에 나열되지 않은 경우 GitHub Enterprise 지원(으)로 문의하세요. 자세한 내용은 GitHub 지원에 문의을(를) 참조하세요.

  1. 각 추가 노드에 대해 위 단계를 반복합니다.
  2. 마지막 복제본 노드를 업그레이드하고 다시 동기화가 완료되면 사용자가 GitHub Enterprise Server 인스턴스를 사용할 수 있도록 유지 관리 모드를 사용하지 않도록 설정합니다.