Skip to main content

스테이징 인스턴스 설정

격리된 별도의 환경에서 GitHub Enterprise Server 인스턴스를 설정하고 이 인스턴스를 사용하여 변경 내용의 유효성을 검사하고 테스트할 수 있습니다.

스테이징 인스턴스 정보

GitHub에서는 GitHub Enterprise Server 인스턴스의 구성에 대한 백업, 업데이트 또는 변경 내용을 테스트하기 위해 별도의 환경을 설정하는 것이 좋습니다. 프로덕션 시스템에서 격리해야 하는 이 환경을 스테이징 환경이라고 합니다.

예를 들어 데이터 손실로부터 보호하기 위해 프로덕션 인스턴스의 백업 유효성을 정기적으로 검사할 수 있습니다. 스테이징 환경에서 프로덕션 데이터의 백업을 별도의 GitHub Enterprise Server 인스턴스로 정기적으로 복원할 수 있습니다. 이 스테이징 인스턴스에서 GitHub Enterprise Server의 최신 기능 릴리스로 업그레이드를 테스트할 수도 있습니다.

Tip

스테이징 인스턴스가 프로덕션 용량에서 사용되지 않는 한 기존 GitHub Enterprise 라이선스 파일을 다시 사용할 수 있습니다.

스테이징 환경에 대한 고려 사항

GitHub Enterprise Server을 철저히 테스트하고 프로덕션 환경과 가능한 한 유사한 환경을 다시 만들려면 인스턴스와 상호 작용하는 외부 시스템을 고려합니다. 예를 들어 스테이징 환경에서 다음을 테스트할 수 있습니다.

  • 인증, 특히 SAML과 같은 외부 인증 공급자를 사용하는 경우
  • 외부 티켓팅 시스템과의 통합
  • 연속 통합 서버와의 통합
  • GitHub Enterprise Server APIs을(를) 사용하는 외부 스크립트 또는 소프트웨어
  • 메일 알림을 위한 외부 SMTP 서버

스테이징 인스턴스 설정

스테이징 인스턴스를 처음부터 설정하고 원하는 인스턴스를 구성할 수 있습니다. 자세한 내용은 "GitHub Enterprise Server 인스턴스 설정" 및 "GitHub Enterprise 구성" 항목을 참조하세요.

또는, 프로덕션 인스턴스 백업을 스테이징 인스턴스로 복원하여 프로덕션 구성을 반영하는 스테이징 인스턴스를 만들 수도 있습니다.

  1. 프로덕션 인스턴스를 백업합니다.
  2. 스테이징 인스턴스를 설정합니다.
  3. GitHub Actions을(를) 구성합니다.
  4. GitHub Packages을(를) 구성합니다.
  5. 프로덕션 백업을 복원합니다.
  6. 인스턴스 구성을 검토합니다.
  7. 인스턴스 구성을 적용합니다.

1. 프로덕션 인스턴스 백업

프로덕션 인스턴스와 같은 데이터, 같은 구성이 포함된 인스턴스에서 변경 내용을 테스트하려면 GitHub Enterprise Server Backup Utilities을(를) 사용하여 프로덕션 인스턴스의 데이터 및 구성을 백업합니다. 자세한 내용은 "인스턴스에서 백업 구성"을(를) 참조하세요.

Warning

프로덕션에서 GitHub Actions 또는 GitHub Packages를 사용하는 경우 외부 스토리지의 프로덕션 구성이 백업에 포함됩니다. 스테이징 인스턴스에서 프로덕션 스토리지에 데이터를 쓰게 되어 발생하는 잠재적인 데이터 손실을 방지하려면, 백업 복원 이전 3단계와 4단계에서 각 기능을 구성해야 합니다.

2. 스테이징 인스턴스 설정

새 인스턴스를 스테이징 환경으로 작동하도록 설정합니다. 스테이징 인스턴스를 프로비저닝하고 설치하는 데 프로덕션 인스턴스와 마찬가지로 동일한 가이드를 사용할 수 있습니다. 자세한 내용은 "GitHub Enterprise Server 인스턴스 설정"을(를) 참조하세요.

프로덕션 인스턴스의 백업을 복원하려는 경우 다음 단계를 계속 진행합니다. 아니면 인스턴스를 수동으로 구성하여 다음 단계를 건너뛸 수 있습니다.

Warning

GitHub Actions를 사용하여 백업을 복원하는 작업은 구성되지 않은 인스턴스에서 성공하지 않습니다. GitHub Actions를 사용하도록 설정하려면 호스트 이름이 구성된 인스턴스가 필요합니다. 자세한 내용은 "인스턴스에 대한 호스트 이름 구성하기"을(를) 참조하세요.

3. GitHub Actions 구성

선택 사항으로, 프로덕션 인스턴스에서 GitHub Actions을(를) 사용하는 경우 프로덕션 백업을 복원하기 전에 스테이징 인스턴스 기능을 구성합니다. GitHub Actions을(를) 사용하지 않는 경우 "1. GitHub Packages 구성"으로 건너뜁니다.

Warning

프로덕션 백업을 복원하기 전에 스테이징 인스턴스에 GitHub Actions를 구성하지 않으면 스테이징 인스턴스가 프로덕션 인스턴스의 외부 스토리지를 사용하게 되어 데이터가 손실될 수 있습니다. 스테이징 인스턴스에 다른 외부 스토리지를 사용하는 것이 좋습니다. 자세한 내용은 "스테이징 환경 사용"을(를) 참조하세요.

  1. 스테이징 인스턴스에 SSH로 액세스합니다. 자세한 내용은 "관리 셸(SSH)에 액세스"을(를) 참조하세요.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. GitHub Actions에 외부 저장소 공급자를 사용하도록 스테이징 인스턴스를 구성하려면 다음 명령 중 하나를 입력합니다.

    • Azure Blob Storage:

      Shell
      ghe-config secrets.actions.storage.blob-provider "azure"
      
    • Amazon S3:

      Shell
      ghe-config secrets.actions.storage.blob-provider "s3"
      
    • Google Cloud Storage:

      Shell
      ghe-config secrets.actions.storage.blob-provider "gcs"
      
  3. 다음 명령을 입력하면 개체 틀 값을 연결한 외부 스토리지의 값으로 바꿔 외부 스토리지 연결을 구성합니다.

    • Azure Blob Storage:

      Shell
      ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
      
    • Amazon S3:

      Shell
      ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME"
      ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL"
      ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID"
      ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
      

      다음 명령을 입력하여 S3에서 강제 경로 스타일을 사용하도록 설정할 수 있습니다.

      Shell
      ghe-config secrets.actions.storage.s3.force-path-style true
      
    • Google Cloud Storage:

      Shell
      ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL"
      ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME"
      ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID"
      ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
      
  4. 스테이징 인스턴스에서 GitHub Actions을(를) 사용하도록 준비하려면 다음 명령을 입력합니다.

    Shell
    ghe-config app.actions.enabled true
    
  5. 구성 변경 내용을 적용하려면 다음 명령을 입력합니다.

    Shell
    ghe-config-apply
    

4. GitHub Packages 구성

선택 사항으로, 프로덕션 인스턴스에서 GitHub Packages을(를) 사용하는 경우 프로덕션 백업을 복원하기 전에 스테이징 인스턴스 기능을 구성합니다. GitHub Packages을(를) 사용하지 않는 경우 "1. 프로덕션 백업 복원"으로 건너뜁니다.

Warning

프로덕션 백업을 복원하기 전에 스테이징 인스턴스에 GitHub Packages를 구성하지 않으면 스테이징 인스턴스가 프로덕션 인스턴스의 외부 스토리지를 사용하게 되어 데이터가 손실될 수 있습니다. 스테이징 인스턴스에 다른 외부 스토리지를 사용하는 것이 좋습니다.

  1. 스테이징 인스턴스에 복원할 백업을 검토합니다.

    • GitHub Enterprise Server Backup Utilities 3.5 이상을 사용하여 백업한 경우 GitHub Packages의 구성이 백업에 포함됩니다. 다음 단계를 계속 진행합니다.
    • GitHub Enterprise Server Backup Utilities 3.4 이하를 사용하여 백업한 경우 스테이징 인스턴스에 GitHub Packages을(를) 구성합니다. 자세한 내용은 "엔터프라이즈를 위한 GitHub Packages 시작"을(를) 참조하세요.
  2. 스테이징 인스턴스에 SSH로 액세스합니다. 자세한 내용은 "관리 셸(SSH)에 액세스"을(를) 참조하세요.

    Shell
    ssh -p 122 admin@HOSTNAME
    
  3. 다음 명령을 입력하면 개체 틀 값을 연결한 외부 스토리지의 값으로 바꿔 외부 스토리지 연결을 구성합니다.

    • Azure Blob Storage:

      Shell
      ghe-config secrets.packages.blob-storage-type "azure"
      ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME"
      ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
      
    • Amazon S3:

      Shell
      ghe-config secrets.packages.blob-storage-type "s3"
      ghe-config secrets.packages.service-url "S3 SERVICE URL"
      ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME"
      ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID"
      ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
      
  4. 스테이징 인스턴스에서 GitHub Packages을(를) 사용하도록 준비하려면 다음 명령을 입력합니다.

    Shell
    ghe-config app.packages.enabled true
    

5. 프로덕션 백업 복원

ghe-restore 명령을 사용하여 백업에서 나머지 데이터를 복원합니다. 자세한 내용은 "인스턴스에서 백업 구성"을(를) 참조하세요.

스테이징 인스턴스가 이미 구성되어 있고 설정, 인증서, 라이선스 데이터를 덮어쓰려는 경우 명령에 -c 옵션을 추가합니다. 자세한 내용은 GitHub Enterprise Server Backup Utilities 설명서의 백업 및 복원 명령 사용을 참조하세요.

6. 인스턴스 구성 검토

동일한 호스트 이름을 사용하여 스테이징 인스턴스에 액세스하려면 macOS 또는 Linux의 /etc/hosts 파일이나 Windows의 C:\Windows\system32\drivers\etc 파일을 편집하여 스테이징 인스턴스 호스트 이름을 IP 주소로 확인하도록 로컬 호스트 파일을 업데이트합니다.

Note

스테이징 인스턴스는 프로덕션 인스턴스와 동일한 호스트 이름으로 액세스할 수 있어야 합니다. GitHub Enterprise Server 인스턴스에 대한 호스트 이름 변경은 지원되지 않습니다. 자세한 내용은 "인스턴스에 대한 호스트 이름 구성하기"을(를) 참조하세요.

그런 다음 관리 콘솔에서 스테이징 인스턴스 구성을 검토합니다. 자세한 내용은 "관리 웹 UI에서 인스턴스 등록"을(를) 참조하세요.

Warning

스테이징 인스턴스에 GitHub Actions 또는 GitHub Packages를 구성한 경우 프로덕션 데이터를 덮어쓰지 않도록 하려면 관리 콘솔의 외부 스토리지 구성이 프로덕션 인스턴스와 똑같지 않아야 합니다.

7. 인스턴스 구성 적용

관리 콘솔에서 구성을 적용하려면 설정 저장을 클릭합니다.

스테이징 인스턴스 다시 온라인 상태로 만들기

비용을 절감하기 위해 스테이징 인스턴스 전원을 끄고 필요할 때 전원을 다시 켜야 할 수 있습니다.

인스턴스는 이 버전의 최신 패치 릴리스 기준으로 60일 동안 오프라인 상태를 유지할 수 있으며, 이는 7일에서 증가한 것입니다.

허용된 오프라인 기간 내에 인스턴스를 다시 온라인 상태로 전환하면 GitHub Enterprise Server이(가) 성공적으로 인스턴스화됩니다. 인스턴스가 허용된 기간보다 오랫동안 오프라인 상태로 유지되면 GitHub Enterprise Server이(가) 성공적으로 인스턴스화되지 못하고 시스템 로그에 텍스트 server has been offline for more than the configured server_rejoin_age_max가 포함된 오류 메시지가 표시될 수 있습니다. "시스템 로그 정보" 항목을 참조하세요.

인스턴스가 오류 상태에 있는 경우 다음 명령을 실행하여 복구할 수 있습니다.

sudo mv /data/user/consul/server_metadata.json /data/user/consul/server_metadata.json.bak
ghe-config-apply

추가 참고 자료