기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 대한 GitHub 엔터프라이즈 서버 샘플 실행 CodeBuild
AWS CodeBuild GitHub 엔터프라이즈 서버를 소스 리포지토리로 지원합니다. 이 샘플은 GitHub Enterprise Server 저장소에 인증서가 설치된 경우 CodeBuild 프로젝트를 설정하는 방법을 보여줍니다. 또한 코드 변경 사항이 GitHub Enterprise Server 저장소로 푸시될 때마다 소스 코드를 CodeBuild 다시 빌드하도록 웹후크를 활성화하는 방법도 보여줍니다.
사전 조건
-
프로젝트를 위한 개인용 액세스 토큰을 생성하십시오. CodeBuild GitHub Enterprise 사용자를 생성하고 이 사용자에 대한 개인 액세스 토큰을 생성하는 것이 좋습니다. 프로젝트를 만들 때 사용할 수 있도록 클립보드에 복사하십시오. CodeBuild 자세한 내용은 GitHub 도움말 웹 사이트의 명령줄용 개인용 액세스 토큰 만들기를
참조하십시오. 개인 액세스 토큰을 생성할 때 정의에 리포지토리 범위를 포함시킵니다.
-
GitHub 엔터프라이즈 서버에서 인증서를 다운로드합니다. CodeBuild 인증서를 사용하여 저장소에 신뢰할 수 있는 SSL 연결을 설정합니다.
Linux/macOS 클라이언트:
터미널 창에서 다음 명령을 실행합니다.
echo -n | openssl s_client -connect
HOST
:PORTNUMBER
\ | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /folder
/filename
.pem명령에서 자리 표시자를 다음 값으로 바꿉니다.
HOST
. GitHub 엔터프라이즈 서버 저장소의 IP 주소.PORTNUMBER
. 연결에 사용하는 포트 번호 (예: 443).folder
. 인증서를 다운로드한 폴더.filename
. 인증서 파일의 파일 이름.중요
인증서를 .pem 파일로 저장합니다.
Windows 클라이언트:
브라우저를 사용하여 GitHub Enterprise Server에서 인증서를 다운로드합니다. 사이트의 인증서 세부 정보를 보려면 자물쇠 아이콘을 선택합니다. 인증서를 내보내는 방법에 대한 자세한 내용은 브라우저 설명서를 참조하십시오.
중요
인증서를 .pem 파일로 저장합니다.
-
S3 버킷으로 인증서 파일을 업로드합니다. S3 버킷을 생성하는 방법에 대한 자세한 내용은 S3 버킷을 생성하려면 어떻게 해야 합니까?를 참조하십시오. S3 버킷으로 객체를 업로드하는 방법에 대한 자세한 내용은 버킷에 파일 및 폴더를 업로드하려면 어떻게 해야 합니까?를 참조하십시오.
참고
이 버킷은 빌드와 같은 AWS 지역에 있어야 합니다. 예를 들어 미국 동부 (오하이오) 지역에서 빌드를 CodeBuild 실행하도록 지시하는 경우 버킷은 미국 동부 (오하이오) 지역에 있어야 합니다.
1단계: GitHub Enterprise Server로 빌드 프로젝트를 만들고 웹훅을 활성화합니다.
https://console.aws.amazon.com/codesuite/코드빌드/홈에서 AWS CodeBuild
콘솔을 엽니다. CodeBuild 정보 페이지가 표시되면 빌드 프로젝트 만들기를 선택합니다. 그렇지 않을 경우, 탐색 창에서 빌드를 확장한 후 빌드 프로젝트를 선택하고 빌드 프로젝트 생성을 선택합니다.
프로젝트 이름에 이 빌드 프로젝트의 이름을 입력합니다. 빌드 프로젝트 이름은 AWS 계정별로 고유해야 합니다. 또한 선택에 따라 빌드 프로젝트에 대한 설명을 포함하여 다른 사용자가 이 프로젝트의 용도를 이해하도록 도울 수 있습니다.
-
소스의 소스 제공자에서 GitHub Enterprise를 선택합니다.
-
[Personal Access Token]에서 클리보드에 복사해 놓은 토큰을 붙여 넣고 [Save Token]을 선택합니다. 리포지토리에 URL GitHub 엔터프라이즈 서버 리포지토리의 를 URL 입력합니다.
참고
개인 액세스 토큰은 한 번만 입력하고 저장하면 됩니다. 향후 모든 AWS CodeBuild 프로젝트에서 이 토큰을 사용합니다.
-
리포지토리에 URL 리포지토리 이름을 포함하여 리포지토리의 경로를 입력합니다.
-
추가 구성을 확장합니다.
-
코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드하려면 코드 변경이 이 리포지토리로 푸시될 때마다 다시 빌드를 선택합니다.
-
GitHub Enterprise Server 프로젝트 리포지토리에 연결하는 동안 SSL 경고를 SSL 무시하려면 비보안 활성화를 선택합니다.
참고
SSL테스트용으로만 비보안 활성화를 사용하는 것이 좋습니다. 프로덕션 환경에 사용하면 안 됩니다.
-
환경에서 다음과 같이 합니다.
[Environment image]에서 다음 중 하나를 수행합니다.
-
관리되는 AWS CodeBuild Docker 이미지를 사용하려면 관리 이미지를 선택한 다음 운영 체제, 런타임, 이미지 및 이미지 버전 중에서 선택합니다. 사용 가능한 경우 환경 유형에서 항목을 선택합니다.
-
다른 도커 이미지를 사용하려면 사용자 지정 이미지를 선택합니다. 환경 유형으로는 리눅스, 리눅스 ARM, 윈도우 중 하나를 선택합니다. GPU 기타 레지스트리를 선택한 경우 외부 레지스트리에 URL 대해 다음 형식을 사용하여 Docker Hub에 Docker 이미지의 이름과 태그를 입력합니다.
ECRAmazon을 선택하는 경우 Amazon ECR 리포지토리와 Amazon ECR 이미지를 사용하여 AWS 계정에서 Docker 이미지를 선택하십시오.docker repository
/docker image name
-
프라이빗 도커 이미지를 사용하려면 사용자 지정 이미지를 선택합니다. 환경 유형으로는 리눅스 ARM, 리눅스, 윈도우 중 하나를 선택합니다. GPU 이미지 레지스트리의 경우 기타 레지스트리를 선택한 다음 프라이빗 Docker 이미지의 자격 증명을 입력합니다. ARN 보안 인증은 Secrets Manager에서 생성됩니다. 자세한 내용은 AWS Secrets Manager사용 설명서의 AWS Secrets Manager 이란? 섹션을 참조하세요.
-
서비스 역할에서 다음 중 하나를 수행합니다.
-
CodeBuild 서비스 역할이 없는 경우 새 서비스 역할을 선택합니다. 역할 이름에 새 역할의 이름을 입력합니다.
-
CodeBuild 서비스 역할이 있는 경우 기존 서비스 역할을 선택합니다. ARN역할에서 서비스 역할을 선택합니다.
참고
콘솔을 사용하여 빌드 프로젝트를 만들거나 업데이트할 때 동시에 CodeBuild 서비스 역할을 만들 수 있습니다. 기본적으로 역할은 해당 빌드 프로젝트에서만 작동합니다. 콘솔을 사용하여 이 서비스 역할을 다른 빌드 프로젝트와 연결하는 경우 다른 빌드 프로젝트에서 작동하도록 역할이 업데이트됩니다. 하나의 서비스 역할은 최대 10개의 빌드 프로젝트에서 작동할 수 있습니다.
-
-
추가 구성을 확장합니다.
다음과 같이 CodeBuild 작업하려는 경우VPC:
-
VPC에 사용할 VPC ID를 선택하십시오. CodeBuild
-
VPC서브넷의 경우 사용하는 리소스가 포함된 CodeBuild 서브넷을 선택합니다.
-
VPC보안 그룹의 경우, 의 리소스에 대한 액세스를 허용하는 데 CodeBuild 사용하는 보안 그룹을 선택합니다. VPCs
자세한 내용은 Amazon Virtual Private 클라우드와 AWS CodeBuild 함께 사용 단원을 참조하십시오.
-
Buildspec에서 다음 중 하나를 수행합니다.
-
buildspec 파일 사용을 선택하여 소스 코드 루트 디렉터리에 있는 buildspec.yml 파일을 사용합니다.
-
빌드 명령 삽입을 선택하여 콘솔에서 빌드 명령을 삽입합니다.
자세한 정보는 buildspec 참조 단원을 참조하십시오.
-
결과물의 유형에서 다음 중 하나를 수행합니다.
-
빌드 출력 아티팩트를 생성하지 않으려면 No artifacts(아티팩트 없음)를 선택합니다.
-
S3 버킷에 빌드 출력을 저장하려면 Amazon S3를 선택하고 다음 작업을 수행합니다.
-
빌드 출력 ZIP 파일 또는 폴더에 프로젝트 이름을 사용하려면 이름을 비워 두십시오. 그렇지 않으면 이름을 입력합니다. 기본적으로 결과물 이름은 프로젝트의 이름입니다. 다른 이름을 사용하려면 결과물 이름 상자에 해당 이름을 입력합니다. ZIP파일을 출력하려면 zip 확장자를 포함하세요.
-
[Bucket name]에서 출력 버킷의 이름을 선택합니다.
-
이 절차의 앞부분에서 빌드 명령 삽입을 선택한 경우 출력 파일에 빌드 출력 파일 또는 폴더에 넣을 빌드의 ZIP 파일 위치를 입력합니다. 위치가 여러 개인 경우 각 위치를 쉼표로 구분합니다(예:
appspec.yml, target/my-app.jar
). 자세한 내용은 buildspec 구문의files
설명을 참조하십시오.
-
-
Cache type(캐시 유형)에서 다음 중 하나를 선택합니다.
-
캐시를 사용하지 않으려면 [No cache]를 선택합니다.
-
Amazon S3 캐시를 사용하려면 Amazon S3를 선택하고 다음을 수행합니다.
-
버킷에서 캐시가 저장된 S3 버킷의 이름을 선택합니다.
-
(선택 사항) 캐시 경로 접두사에 Amazon S3 경로 접두사를 입력합니다. Cache path prefix(캐시 경로 접두사) 값은 디렉터리 이름과 비슷합니다. 따라서 캐시를 버킷의 동일한 디렉터리에 저장할 수 있습니다.
중요
경로 접두사 끝에 후행 슬래시(/)를 추가하지 마십시오.
-
-
로컬 캐시를 사용하려면 로컬을 선택한 다음 하나 이상의 로컬 캐시 모드를 선택해야 합니다.
참고
Docker 계층 캐시 모드는 Linux에서만 사용할 수 있습니다. 이 모드를 선택할 경우 프로젝트를 권한이 있는 모드에서 실행해야 합니다.
캐시를 사용하면 빌드 환경의 재사용 가능한 특정 부분이 캐시에 저장되고 빌드 전반에서 사용되기 때문에 상당한 빌드 시간을 절약할 수 있습니다. buildspec 파일에 캐시를 지정하는 것에 대한 자세한 정보는 buildspec 구문 단원을 참조하십시오. 캐싱에 대한 자세한 정보는 캐시 빌드를 통한 성능 향상을 참조하십시오.
-
-
빌드 프로젝트 생성을 선택합니다. 빌드 프로젝트 페이지에서 빌드 시작을 선택합니다.
-
소스에서 웹후크를 활성화한 경우 페이로드 URL 및 시크릿 값이 포함된 웹후크 생성 대화 상자가 표시됩니다.
중요
[Create webhook] 대화 상자는 한 번만 나타납니다. URL페이로드와 비밀 키를 복사합니다. GitHub 엔터프라이즈 서버에서 웹후크를 추가할 때 필요합니다.
URL페이로드와 비밀 키를 다시 생성해야 하는 경우 먼저 GitHub 엔터프라이즈 서버 저장소에서 웹후크를 삭제해야 합니다. CodeBuild 프로젝트에서 Webhook 확인란의 선택을 취소한 다음 [Save] 를 선택합니다. 그런 다음 Webhook 확인란을 선택하여 CodeBuild 프로젝트를 만들거나 업데이트할 수 있습니다. [Create webhook] 대화 상자가 다시 나타납니다.
-
GitHub Enterprise Server에서 CodeBuild 프로젝트가 저장되어 있는 저장소를 선택합니다.
-
설정, Hooks & services(후크 및 서비스), Add webhook(webhook 추가)를 차례로 선택합니다.
-
URL페이로드와 비밀 키를 입력하고 다른 필드의 기본값을 적용한 다음 웹후크 추가를 선택합니다.
-
CodeBuild 프로젝트로 돌아가세요. [Create webhook] 대화 상자를 선택하고 [Start build]를 선택합니다.