Manage GitHub Enterprise Server API 또는 GitHub Enterprise Server용 gh es 확장 프로그램을 사용하여 GitHub CLI 인스턴스를 업그레이드할 수 있습니다. 이러한 도구는 업그레이드 패키지를 다운로드하고, 업그레이드 전 검사를 실행하고, 새 버전을 적용하는 프로세스를 자동화합니다.
사전 요구 사항
- 을 사용하여 GitHub Enterprise Server Backup Utilities데이터 백업
- 최종 사용자의 유지 관리 기간을 예약합니다.
- 관리 GitHub Enterprise Server API에 인증할 수 있는지 확인합니다. 자세한 내용은 GitHub Enterprise 관리를 위한 REST API 엔드포인트을(를) 참조하세요.
REST API를 사용하여 업그레이드 자동화
-
업그레이드 패키지를 다운로드합니다.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download \ -d '{"version":"VERSION"}' -
계속하기 전에 다운로드가 완료되었는지 확인합니다.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download/status
status에 COMPLETED이 표시될 때까지 기다립니다.
-
업그레이드의 업그레이드 전 단계를 적용합니다.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION", "phase":"pre-upgrade"}' -
완료될 때까지 업그레이드 전 단계를 모니터링합니다.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?is_verbose=true"
status에 completed이(가) 표시되고 is_running에 false이(가) 표시될 때까지 기다립니다.
-
유지 관리 모드를 사용하도록 설정합니다.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":true}' -
업그레이드의 업그레이드 단계를 적용합니다.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION", "phase":"upgrade"}' -
릴리스 버전이 업데이트되었는지 확인합니다.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/version -
유지 관리 모드 사용 중지.
curl -L \ -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":false}'
GitHub CLI 확장을 사용하여 업그레이드 자동화
-
업그레이드 패키지를 다운로드합니다. 특정 버전을 다운로드하려면 플래그를
--version지정합니다. 그렇지 않으면 사용 가능한 최신 버전이 다운로드됩니다.# Download a specific version gh es upgrade download --version VERSION # Or download the latest available version gh es upgrade download -
계속하기 전에 다운로드가 완료되었는지 확인합니다.
gh es upgrade download status
status에 COMPLETED이 표시될 때까지 기다립니다.
-
업그레이드의 업그레이드 전 단계를 적용합니다.
gh es upgrade apply --version VERSION --phase pre-upgrade -
완료될 때까지 업그레이드 전 단계를 모니터링합니다.
gh es upgrade status --verbose
status에 completed이 표시되고 is_running에 false이 표시될 때까지 기다립니다.
-
유지 관리 모드를 사용하도록 설정합니다.
gh es maintenance set --enabled true -
업그레이드의 업그레이드 단계를 적용합니다.
gh es upgrade apply --version VERSION --phase upgrade -
릴리스 버전이 업데이트되었는지 확인합니다.
gh es release version -
유지 관리 모드 사용 중지.
gh es maintenance set --enabled false
고가용성 배포 환경 업그레이드하기
HA(고가용성) 복제본이 있는 인스턴스의 경우 다운로드 및 업그레이드 전 단계는 중단이 없으며 모든 노드에서 한 번에 실행할 수 있습니다. UUID 대상 지정은 다시 부팅을 트리거하는 업그레이드 단계 자체에만 필요합니다. 이렇게 하면 노드가 재부팅되는 순서를 제어할 수 있습니다. 즉, 복제본을 먼저 업그레이드한 다음 기본 노드를 업그레이드합니다.
노드 UUID를 가져오려면 gh es config get-metadata를 실행하거나 GET /manage/v1/config/nodes를 조회하십시오.
GitHub CLI를 사용한 고가용성 배포 업그레이드
-
패키지를 모든 노드에 다운로드합니다.
gh es upgrade download --version VERSION -
모든 노드에서 다운로드가 완료되기를 기다립니다.
gh es upgrade download status -
모든 노드에서 업그레이드 전 단계를 한 번에 실행합니다. 이 단계는 중단이 없습니다.
gh es upgrade apply --version VERSION --phase pre-upgrade -
업그레이드 전 단계가 완료되기를 기다립니다.
gh es upgrade status --verbose -
유지 관리 모드를 사용하도록 설정합니다.
gh es maintenance set --enabled true -
복제본에서 복제를 중지합니다.
ghe-repl-stop -
먼저 주 복제본을 업그레이드하여 다시 부팅을 트리거한 다음 진행률을 모니터링합니다.
gh es upgrade apply --version VERSION --phase upgrade --uuid PRIMARY-UUID gh es upgrade status --uuid PRIMARY-UUID --verbose -
주 서버가 완료되면 복제본을 업그레이드한 다음 진행 상황을 모니터링합니다.
gh es upgrade apply --version VERSION --phase upgrade --uuid REPLICA-UUID gh es upgrade status --uuid REPLICA-UUID --verbose -
복제본에서 복제를 다시 시작합니다.
ghe-repl-start -
복제 상태 및 버전을 확인한 다음 유지 관리 모드를 사용하지 않도록 설정합니다.
gh es replication status gh es release version gh es maintenance set --enabled false
REST API를 사용하여 고가용성 배포 업그레이드
-
패키지를 모든 노드에 다운로드합니다.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download \ -d '{"version":"VERSION"}' -
모든 노드에서 다운로드가 완료되기를 기다립니다.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/download/status -
모든 노드에서 업그레이드 전 단계를 한 번에 실행합니다. 이 단계는 중단이 없습니다.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"pre-upgrade"}' -
업그레이드 전 단계가 완료되기를 기다립니다.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?is_verbose=true" -
유지 관리 모드를 사용하도록 설정합니다.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":true}' -
복제본에서 복제를 중지합니다.
ghe-repl-stop -
먼저 주 복제본을 업그레이드하여 다시 부팅을 트리거한 다음 진행률을 모니터링합니다.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"upgrade","uuid":"PRIMARY-UUID"}' curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?uuid=PRIMARY-UUID&is_verbose=true" -
주 서버가 완료되면 복제본을 업그레이드한 다음 진행 상황을 모니터링합니다.
curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/upgrade/apply \ -d '{"version":"VERSION","phase":"upgrade","uuid":"REPLICA-UUID"}' curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ "https://HOSTNAME:8443/manage/v1/upgrade/status?uuid=REPLICA-UUID&is_verbose=true" -
복제본에서 복제를 다시 시작합니다.
ghe-repl-start -
복제 상태 및 버전을 확인한 다음 유지 관리 모드를 사용하지 않도록 설정합니다.
curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/replication/status curl -L \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/version curl -L -X POST \ -u "api_key:ROOT-SITE-ADMINISTRATOR-PASSWORD" \ -H "Content-Type: application/json" \ https://HOSTNAME:8443/manage/v1/maintenance \ -d '{"enabled":false}'