CodeBuild 위한 GitHub Enterprise Server 샘플 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeBuild 위한 GitHub Enterprise Server 샘플

AWS CodeBuild가 소스 리포지토리로 GitHub Enterprise Server를 지원합니다. 이 샘플에서는 GitHub Enterprise Server 리포지토리에 인증서가 설치되어 있을 때 CodeBuild 프로젝트를 설정하는 방법을 보여줍니다. 또한 코드 변경이 GitHub Enterprise Server 리포지토리로 푸시될 때마다 CodeBuild에서 소스 코드를 다시 빌드하도록 Webhook을 활성화하는 방법도 보여줍니다.

Prerequisites

  1. CodeBuild 프로젝트에 대한 개인 액세스 토큰을 생성합니다. GitHub Enterprise 사용자를 생성하고 이 사용자를 위한 개인 액세스 토큰을 생성하는 것이 좋습니다. 이 코드를 CodeBuild 프로젝트를 생성할 때 사용할 수 있도록 클립보드에 복사합니다. 자세한 내용은 GitHub Help 웹 사이트의 Creating a personal access token for the command line을 참조하십시오.

    개인 액세스 토큰을 생성할 때 정의에 리포지토리 범위를 포함시킵니다.

  2. GitHub Enterprise Server에서 인증서를 다운로드합니다. CodeBuild는 인증서를 사용하여 리포지토리에 신뢰할 수 있는 SSL 연결을 설정합니다.

    Linux/macOS 클라이언트:

    터미널 창에서 다음 명령을 실행합니다.

    echo -n | openssl s_client -connect HOST:PORTNUMBER \ | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder/filename.pem

    명령에서 자리 표시자를 다음 값으로 바꿉니다.

    HOST. GitHub Enterprise Server 리포지토리의 IP 주소입니다.

    PORTNUMBER. 연결에 사용하는 포트 번호입니다(예: 443).

    folder. 인증서를 다운로드한 폴더입니다.

    filename. 인증서 파일의 파일 이름입니다.

    중요

    인증서를 .pem 파일로 저장합니다.

    Windows 클라이언트:

    브라우저를 사용하여 GitHub Enterprise Server에서 인증서를 다운로드합니다. 사이트의 인증서 세부 정보를 보려면 자물쇠 아이콘을 선택합니다. 인증서를 내보내는 방법에 대한 자세한 내용은 브라우저 설명서를 참조하십시오.

    중요

    인증서를 .pem 파일로 저장합니다.

  3. S3 버킷으로 인증서 파일을 업로드합니다. S3 버킷을 생성하는 방법에 대한 자세한 내용은 S3 버킷을 생성하려면 어떻게 해야 합니까?를 참조하십시오. S3 버킷으로 객체를 업로드하는 방법에 대한 자세한 내용은 버킷에 파일 및 폴더를 업로드하려면 어떻게 해야 합니까?를 참조하십시오.

    참고

    이 버킷은 동일해야 합니다.AWS지역을 빌드로 사용합니다. 예를 들어 CodeBuild에 가 미국 동부 (오하이오) 리전에서 빌드를 실행하도록 명령을 지정하는 경우 버킷도 미국 동부 (오하이오) 리전에 있어야 합니다.

GitHub Enterprise Server를 소스 리포지토리로 사용하여 빌드 프로젝트 생성 및 Webhook 활성화(콘솔)

  1. 열기AWS CodeBuild콘솔https://console.aws.amazon.com/codesuite/codebuild/home.

  2. [CodeBuild 정보] 페이지가 표시되면 를 선택합니다.빌드 프로젝트 생성. 그렇지 않을 경우, 탐색 창에서 빌드를 확장한 후 빌드 프로젝트를 선택하고 빌드 프로젝트 생성을 선택합니다.

  3. 프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다. 각 AWS 계정에서 빌드 프로젝트 이름은 고유해야 합니다. 또한 선택에 따라 빌드 프로젝트에 대한 설명을 포함하여 다른 사용자가 이 프로젝트의 용도를 이해하도록 도울 수 있습니다.

  4. 소스소스 공급자에서 GitHub Enterprise를 선택합니다.

    • [Personal Access Token]에서 클리보드에 복사해 놓은 토큰을 붙여 넣고 [Save Token]을 선택합니다. Repository URL에 GitHub Enterprise Server 리포지토리의 URL을 입력합니다.

      참고

      개인 액세스 토큰은 한 번만 입력하고 저장하면 됩니다. 향후 모든 AWS CodeBuild 프로젝트가 이 토큰을 사용합니다.

    • 리포지토리 URL에 리포지토리 이름을 포함하여 리포지토리에 대한 경로를 입력합니다.

    • Additional configuration(추가 구성)을 확장합니다.

    • 코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드하려면 코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드를 선택합니다.

    • GitHub Enterprise Server 프로젝트 리포지토리에 연결되어 있는 동안 SSL 경고를 무시하려면 안전하지 않은 SSL 활성화를 선택합니다.

      참고

      Enable insecure SSL(안전하지 않은 SSL 활성화)는 테스트 용도로만 사용하는 것이 좋습니다. 프로덕션 환경에 사용하면 안 됩니다.

  5. 환경에서 다음과 같이 합니다.

    [Environment image]에서 다음 중 하나를 수행합니다.

    • AWS CodeBuild가 관리하는 도커 이미지를 사용하려면 Managed image(관리형 이미지)를 선택한 후 운영 체제, 런타임, 이미지이미지 버전에서 항목을 선택합니다. 사용 가능한 경우 환경 유형에서 항목을 선택합니다.

    • 다른 도커 이미지를 사용하려면 사용자 지정 이미지를 선택합니다. 용환경 유형, 선택ARM,Linux,리눅스 GPU또는Windows. Other registry(다른 레지스트리)를 선택한 경우 External registry URL(외부 레지스트리 URL)에 Docker Hub의 도커 이미지 이름 및 태그를 docker repository/docker image name 형식으로 입력합니다. 를 선택한 경우Amazon ECR, 사용Amazon ECR 저장소Amazon ECR 이미지에서 Docker 이미지를 선택합니다.AWS계정.

    • 프라이빗 도커 이미지를 사용하려면사용자 지정 이미지. 용환경 유형, 선택ARM,Linux,리눅스 GPU또는Windows. Image registry(이미지 레지스트리)에서 Other registry(다른 레지스트리)를 선택한 다음 프라이빗 도커 이미지에 대한 자격 증명 정보의 ARN을 입력합니다. 자격 증명은 Secrets Manager에서 생성해야 자세한 내용은 단원을 참조하십시오.란 무엇입니까?AWS Secrets Manager?AWS Secrets Manager사용 설명서.

  6. 서비스 역할에서 다음 중 하나를 수행합니다.

    • CodeBuild 서비스 역할이 없는 경우새로운 서비스 역할. 역할 이름에 새 역할의 이름을 입력합니다.

    • CodeBuild 서비스 역할이 있는 경우Existing service role. 역할 ARN에서 서비스 역할을 선택합니다.

    참고

    콘솔을 사용하여 빌드 프로젝트를 생성하거나 업데이트하는 경우, 이와 동시에 CodeBuild 서비스 역할을 만들 수 있습니다. 기본적으로 역할은 해당 빌드 프로젝트에서만 작동합니다. 콘솔을 사용하여 이 서비스 역할을 다른 빌드 프로젝트와 연결하는 경우 다른 빌드 프로젝트에서 작동하도록 역할이 업데이트됩니다. 하나의 서비스 역할은 최대 10개의 빌드 프로젝트에서 작동할 수 있습니다.

  7. Additional configuration(추가 구성)을 확장합니다.

    를 사용하여 VPC CodeBuild를 사용하려면 다음을 수행합니다.

    • VPC를 사용하여 CodeBuild에서 사용하는 VPC ID를 선택합니다.

    • VPC 서브넷를 사용하여 CodeBuild가 사용하는 리소스가 포함된 서브넷을 선택합니다.

    • VPC 보안 그룹를 사용하여 VPC의 리소스에 대한 액세스를 허용하기 위해 CodeBuild가 사용하는 보안 그룹을 선택합니다.

    자세한 정보는 사용AWS CodeBuildAmazon Virtual Private Cloud을 참조하십시오.

  8. InBuildSpec에서 다음 중 하나를 수행합니다.

    • 선택Buildspec 파일 사용소스 코드 루트 디렉토리에서 buildspec.yml 파일을 사용합니다.

    • 빌드 명령 삽입을 선택하여 콘솔에서 빌드 명령을 삽입합니다.

    자세한 내용은 buildspec 참조 섹션을 참조하세요.

  9. 결과물유형에서 다음 중 하나를 수행합니다.

    • 빌드 출력 아티팩트를 생성하지 않으려면 No artifacts(아티팩트 없음)를 선택합니다.

    • S3 버킷에 빌드 출력을 저장하려면Amazon S3를 누르고 다음 중 하나를 수행합니다.

      • 빌드 출력 ZIP 파일이나 폴더에 프로젝트 이름을 사용하려는 경우 이름을 비워 둡니다. 그렇지 않으면 이름을 입력합니다. 기본적으로 결과물 이름은 프로젝트의 이름입니다. 다른 이름을 사용하려면 결과물 이름 상자에 해당 이름을 입력합니다. ZIP 파일을 출력하려면 zip 확장명을 포함시킵니다.

      • [Bucket name]에서 출력 버킷의 이름을 선택합니다.

      • 이 절차의 앞부분에서 빌드 명령 삽입을 선택한 경우 출력 파일에 빌드 출력 ZIP 파일 또는 폴더에 넣으려는 빌드의 파일 위치를 입력합니다. 위치가 여러 개인 경우 각 위치를 쉼표로 구분합니다(예: appspec.yml, target/my-app.jar). 자세한 내용은 buildspec 구문files 설명을 참조하십시오.

  10. Cache type(캐시 유형)에서 다음 중 하나를 선택합니다.

    • 캐시를 사용하지 않으려면 [No cache]를 선택합니다.

    • Amazon S3 캐시를 사용하려면Amazon S3를 누르고 다음 중 하나를 수행합니다.

      • 버킷에서 캐시가 저장된 S3 버킷의 이름을 선택합니다.

      • (선택 사항) 대상캐시 경로 접두사에서 Amazon S3 경로 접두사를 입력합니다. Cache path prefix(캐시 경로 접두사) 값은 디렉터리 이름과 비슷합니다. 따라서 캐시를 버킷의 동일한 디렉터리에 저장할 수 있습니다.

        중요

        경로 접두사 끝에 후행 슬래시(/)를 추가하지 마십시오.

    • 로컬 캐시를 사용하려면 로컬을 선택한 다음 하나 이상의 로컬 캐시 모드를 선택해야 합니다.

      참고

      Docker 계층 캐시 모드는 Linux에서만 사용할 수 있습니다. 이 모드를 선택할 경우 프로젝트를 권한이 있는 모드에서 실행해야 합니다. ARM_CONTAINERLINUX_GPU_CONTAINER 환경 유형과 BUILD_GENERAL1_2XLARGE 컴퓨팅 유형은 로컬 캐시 사용을 지원하지 않습니다.

    캐시를 사용하면 빌드 환경의 재사용 가능한 특정 부분이 캐시에 저장되고 빌드 전반에서 사용되기 때문에 상당한 빌드 시간을 절약할 수 있습니다. buildspec 파일에 캐시를 지정하는 것에 대한 자세한 정보는 buildspec 구문 단원을 참조하십시오. 캐싱에 대한 자세한 정보는 AWS CodeBuild의 빌드 캐싱을 참조하십시오.

  11. 빌드 프로젝트 생성을 선택합니다. 빌드 프로젝트 페이지에서 빌드 시작을 선택합니다.

  12. 에서 웹훅을 활성화한 경우소스, a웹후크 생성의 값과 함께 대화 상자가 표시됩니다.페이로드 URLSecret.

    중요

    [Create webhook] 대화 상자는 한 번만 나타납니다. 페이로드 URL 및 보안 키를 복사합니다. 이들 값은 GitHub Enterprise Server에 Webhook를 추가할 때 필요합니다.

    페이로드 URL 및 보안 키를 다시 생성해야 하는 경우에는 먼저 GitHub Enterprise Server 리포지토리에서 Webhook를 삭제해야 합니다. CodeBuild 프로젝트에서Webhook확인란을 선택한 다음Save. 그런 다음 다음을 사용하여 CodeBuild 프로젝트를 만들거나 업데이트할 수 있습니다.Webhook확인란이 선택되었습니다. [Create webhook] 대화 상자가 다시 나타납니다.

  13. GitHub Enterprise Server에서 CodeBuild 프로젝트가 저장된 리포지토리를 선택합니다.

  14. 설정, Hooks & services(후크 및 서비스), Add webhook(webhook 추가)를 차례로 선택합니다.

  15. 페이로드 URL 및 보안 키를 입력하고 그 외 필드에 대해서는 기본값을 수락한 다음 [Add webhook]를 선택합니다.

  16. CodeBuild 프로젝트로 돌아갑니다. [Create webhook] 대화 상자를 선택하고 [Start build]를 선택합니다.