

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

# GitLab 자체 관리형을 위한 연결
<a name="connections-gitlab-managed"></a>

연결을 사용하면 타사 공급자를 AWS 리소스와 연결하는 구성을 승인하고 설정할 수 있습니다. 타사 리포지토리를 파이프라인의 소스로 연결하려면 연결을 사용합니다.

**참고**  
계정에서 기존 연결을 생성하거나 사용하는 대신 다른 AWS 계정간에 공유 연결을 사용할 수 있습니다. [다른 계정과 공유하는 연결 사용](connections-shared.md)을(를) 참조하세요.

**참고**  
아시아 태평양(홍콩), 아시아 태평양(하이데라바드), 아시아 태평양(자카르타), 아시아 태평양(멜버른), 아시아 태평양(오사카), 아프리카(케이프타운), 중동(바레인), 중동(UAE), 유럽(스페인), 유럽(취리히), 이스라엘(텔아비브) 또는 AWS GovCloud(미국 서부) 리전에서는이 기능을 사용할 수 없습니다. 사용 가능한 다른 작업을 참조하려면 [CodePipeline과 제품 및 서비스 통합](integrations.md)을 참조하세요. 유럽(밀라노) 리전에서 이 조치를 고려할 경우 [Bitbucket Cloud, GitHub, GitHub Enterprise Server, GitLab.com 및 GitLab 자체 관리형 작업용 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)의 참고 사항을 참조하세요.

CodePipeline에 GitLab 자체 관리형 소스 작업을 추가하려면 다음 중 하나를 선택할 수 있습니다.
+ CodePipeline 콘솔 **파이프라인 생성** 마법사 또는 **작업 편집** 페이지를 사용하여 **GitLab 자체 관리형** 공급자 옵션을 선택합니다. 작업을 추가하려면 [GitLab 자체 관리형에 대한 연결 생성(콘솔)](#connections-gitlab-managed-console)을 참조하세요. 콘솔을 사용하면 호스트 리소스와 연결 리소스를 만들 수 있습니다.
+ CLI를 사용하여 `GitLabSelfManaged` 공급자와 함께 `CreateSourceConnection` 작업에 대한 작업 구성을 추가하고 리소스를 생성합니다.
  + 연결 리소스를 생성하려면 [호스트를 만들고 GitLab 자체 관리형에 연결(CLI)](#connections-gitlab-managed-cli)을 참조하여 CLI를 사용하여 호스트 리소스 및 연결 리소스를 생성합니다.
  + [Bitbucket Cloud, GitHub, GitHub Enterprise Server, GitLab.com 및 GitLab 자체 관리형 작업용 CodeStarSourceConnection](action-reference-CodestarConnectionSource.md)의 `CreateSourceConnection` 예제 작업 구성을 사용하여 [파이프라인 생성(CLI)](pipelines-create.md#pipelines-create-cli)과 같이 작업을 추가합니다.

**참고**  
**설정**의 개발자 도구 콘솔을 사용하여 연결을 생성할 수도 있습니다. [연결 생성](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create.html)을 참조하세요.

시작하기 전:
+ 이미 GitLab에 계정을 만들고 자체 관리형 설치가 가능한 GitLab Enterprise Edition 또는 GitLab Community Edition을 보유하고 있어야 합니다. 자세한 내용은 [https://docs.gitlab.com/ee/subscriptions/self\$1managed/](https://docs.gitlab.com/ee/subscriptions/self_managed/)을 참조하십시오.
**참고**  
연결은 연결을 만들고 권한을 부여하는 데 사용된 계정에 대한 액세스 권한만 제공합니다.
**참고**  
GitLab에서 **소유자** 역할을 가진 리포지토리에 대한 연결을 생성한 다음 CodePipeline과 같은 리소스에서 해당 연결을 사용할 수 있습니다. 그룹 내 리포지토리의 경우 그룹 소유자가 아니어도 됩니다.
+ 범위가 축소된 권한(api.)만 있는 GitLab 개인용 액세스 토큰(PAT)을 이미 생성했어야 합니다. 자세한 내용은 [https://docs.gitlab.com/ee/user/profile/personal\$1access\$1tokens.html](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)을 참조하십시오. PAT를 생성하고 사용하려면 관리자여야 합니다.
**참고**  
PAT는 호스트를 인증하는 데 사용되며 연결에 달리 저장되거나 사용되지 않습니다. 호스트를 설정하려면 임시 PAT를 만든 다음 호스트를 설정한 후 PAT를 삭제하면 됩니다.
+ 호스트를 미리 설정하도록 선택할 수 있습니다. VPC가 있든 없든 호스트를 설정할 수 있습니다. VPC 구성에 대한 세부 정보 및 호스트 생성에 대한 추가 정보는 [호스트 만들기](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-host-create.html)를 참조하십시오.

**Topics**
+ [GitLab 자체 관리형에 대한 연결 생성(콘솔)](#connections-gitlab-managed-console)
+ [호스트를 만들고 GitLab 자체 관리형에 연결(CLI)](#connections-gitlab-managed-cli)

## GitLab 자체 관리형에 대한 연결 생성(콘솔)
<a name="connections-gitlab-managed-console"></a>

다음 단계를 사용하여 CodePipeline 콘솔을 사용하여 GitLab 자체 관리형 리포지토리에 대한 연결 작업을 추가할 수 있습니다.

**참고**  
GitLab 자체 관리형 연결은 연결을 만드는 데 사용된 GitLab 자체 관리형 계정이 소유한 리포지토리에 대한 액세스 권한만 제공합니다.

**시작하기 전:**

GitLab 자체 관리형에 대한 호스트 연결의 경우 연결에 대한 호스트 리소스를 생성하기 위한 단계를 완료해야 합니다. [연결을 위한 호스트 관리](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-hosts.html)를 참조하세요.

### 1단계: 파이프라인 생성 또는 편집
<a name="connections-gitlab-managed-console-action"></a>

**파이프라인을 생성 또는 편집하려면**

1. CodePipeline 콘솔에 로그인합니다.

1. 다음 중 하나를 선택합니다.
   + 파이프라인을 생성하려면 선택합니다. 파이프라인 생성의 단계에 따라 첫 화면을 완료하고 **다음**을 선택합니다.** **소스** 페이지의 **소스 공급자**에서 **GitLab 자체 관리형**을 선택합니다.
   + 기존 파이프라인을 편집하려면 선택합니다. **편집**을 선택하고 **단계 편집**을 선택합니다. 소스 작업을 추가 또는 편집하려면 선택합니다. **작업 편집** 페이지의 **작업 이름**에 작업 이름을 입력합니다. **작업 공급자**에서 **GitLab 자체 관리형**을 선택합니다.

1. 다음 중 하나를 수행하세요.
   + **연결**에서 공급자와의 연결을 아직 생성하지 않은 경우 **GitLab 자체 관리형에 연결**을 선택합니다. 2단계: GitLab 자체 관리형에 대한 연결 생성으로 이동합니다.
   + **연결**에서 공급자에 대한 연결을 이미 생성한 경우 해당 연결을 선택한 후 3단계: GitLab 자체 관리형 소스 작업 저장을 진행합니다.

### 2단계: GitLab 자체 관리형에 대한 연결 생성
<a name="connections-gitlab-managed-console-create"></a>

연결을 생성하도록 선택하면 **GitLab 자체 관리형에 연결** 페이지가 표시됩니다.

**GitLab 자체 관리형에 연결하려면**

1. [**연결 이름(Connection name)**]에 연결 이름을 입력합니다.

1. [**URL**]에 서버의 엔드포인트를 입력합니다.
**참고**  
제공된 URL이 연결을 위해 호스트를 설정하는 데 이미 사용된 경우, 해당 엔드포인트에 대해 이전에 생성된 호스트 리소스 ARN을 선택하라는 메시지가 표시됩니다.

1. Amazon VPC로 서버를 시작한 후 VPC에 연결하려는 경우 **VPC 사용**을 선택하고 VPC를 위한 정보를 작성합니다.

1. **GitLab 자체 관리형에 연결**을 선택합니다. 생성된 연결은 [**대기 중(Pending)**] 상태로 표시됩니다. 사용자가 제공한 서버 정보를 사용하여 연결을 위한 호스트 리소스가 생성됩니다. 호스트 이름으로 URL이 사용됩니다.

1. [**보류 중인 연결을 업데이트(Update pending connection)**]를 선택합니다.

1. 공급자로 계속 이동할지 확인하는 리디렉션 메시지가 포함된 페이지가 열리면 **계속**을 선택합니다. 공급자에 대한 승인을 입력합니다.

1. ***host\$1name* 설정** 페이지가 표시됩니다. **개인용 액세스 토큰 제공**에서 GitLab PAT에 다음과 같은 범위 축소 권한인 `api`만 제공하십시오.
**참고**  
관리자만 PAT를 생성하고 사용할 수 있습니다.

   **계속**을 선택합니다.  
![\[새 호스트의 GitLab 자체 관리형 개인용 액세스 토큰 항목을 보여주는 콘솔 스크린샷\]](http://docs.aws.amazon.com/ko_kr/codepipeline/latest/userguide/images/connections-create-glsm-pat.png)

1. 연결 페이지에 생성된 연결이 [**사용 가능(Available)**] 상태로 표시됩니다.

### 3단계: GitLab 자체 관리형 소스 작업 저장
<a name="connections-gitlab-managed-console-save"></a>

마법사 또는 **작업 편집** 페이지에서 다음 단계를 사용하여 소스 작업을 연결 정보와 함께 저장합니다.

**연결을 통해 소스 작업을 완료하고 저장하려면**

1. **리포지토리 이름**에서 타사 리포지토리의 이름을 선택합니다.

1. 작업이 CodeConnections 작업인 경우 **파이프라인 트리거**에서 트리거를 추가할 수 있습니다. 파이프라인 트리거 구성을 구성하고 선택적으로 트리거로 필터링하려면 [코드 푸시 또는 풀 요청 이벤트 유형을 사용하여 트리거 추가](pipelines-filter.md)에서 자세한 내용을 참조하세요.

1. **Output artifact format(출력 아티팩트 형식)**에서 아티팩트의 형식을 선택해야 합니다.
   + 기본 방법을 사용하여 GitLab 자체 관리형 작업의 출력 아티팩트를 저장하려면 **CodePipeline 기본 방법**을 선택합니다. 그러면 리포지토리의 파일에 액세스하여 파이프라인 아티팩트 스토어에 ZIP 파일로 아티팩트가 저장됩니다.
   + 다운스트림 작업이 Git 명령을 직접 수행할 수 있도록 리포지토리에 대한 URL 참조가 포함된 JSON 파일을 저장하려면 **Full clone(전체 복제)**을 선택합니다. 이 옵션은 CodeBuild 다운스트림 작업에서만 사용할 수 있습니다.

1. 마법사에서 **다음**을 선택하거나 **작업 편집** 페이지에서 **저장**을 선택합니다.

## 호스트를 만들고 GitLab 자체 관리형에 연결(CLI)
<a name="connections-gitlab-managed-cli"></a>

 AWS Command Line Interface (AWS CLI)를 사용하여 연결을 생성할 수 있습니다.

이렇게 하려면 **create-connection** 명령을 사용합니다.

**중요**  
 AWS CLI 또는를 통해 생성된 연결 AWS CloudFormation 은 기본적으로 `PENDING` 상태입니다. CLI 또는 와의 연결을 생성한 후 콘솔을 CloudFormation사용하여 연결을 편집하여 상태를 로 설정합니다`AVAILABLE`.

 AWS Command Line Interface (AWS CLI)를 사용하여 설치된 연결을 위한 호스트를 생성할 수 있습니다.

호스트를 사용하여 서드 파티 공급자가 설치된 인프라의 엔드포인트를 나타냅니다. CLI를 사용하여 호스트 생성을 완료하면 호스트가 **보류 중** 상태입니다. 그러면 호스트를 설정 또는 등록하여 **사용 가능** 상태로 전환합니다. 호스트를 사용할 수 있게 되면 연결을 생성하는 단계를 완료합니다.

이렇게 하려면 **create-host** 명령을 사용합니다.

**중요**  
를 통해 생성된 호스트 AWS CLI 는 기본적으로 `Pending` 상태입니다. CLI를 사용하여 호스트를 생성한 후 콘솔 또는 CLI를 통해 호스트를 설정하여 호스트를 상태를 `Available`로 전환합니다.

**호스트를 생성하는 방법**

1. 터미널(Linux, macOS, Unix) 또는 명령 프롬프트(Windows)를 엽니다. AWS CLI 를 사용하여 연결을 `--provider-endpoint` 위해 `--name`, `--provider-type`및를 지정하여 **create-host** 명령을 실행합니다. 이 예제에서 서드 파티 공급자 이름은 `GitLabSelfManaged`이고 엔드포인트는 `my-instance.dev`입니다.

   ```
   aws codestar-connections create-host --name MyHost --provider-type GitLabSelfManaged --provider-endpoint "https://my-instance.dev"
   ```

   이 명령이 제대로 실행되면 다음과 비슷한 호스트 Amazon 리소스 이름(ARN) 정보가 반환됩니다.

   ```
   {
       "HostArn": "arn:aws:codestar-connections:us-west-2:account_id:host/My-Host-28aef605"
   }
   ```

   이 단계가 끝나면 호스트는 `PENDING` 상태입니다.

1. 콘솔을 사용하여 호스트 설정을 완료하고 호스트를 `Available` 상태로 전환합니다.

**GitLab 자체 관리형에 대한 연결을 생성하려면**

1. 터미널(Linux, macOS, Unix) 또는 명령 프롬프트(Windows)를 엽니다. AWS CLI 를 사용하여 연결을 `--connection-name` 위해 `--host-arn` 및를 지정하여 **create-connection** 명령을 실행합니다.

   ```
   aws codestar-connections create-connection --host-arn arn:aws:codestar-connections:us-west-2:account_id:host/MyHost-234EXAMPLE --connection-name MyConnection
   ```

   이 명령이 제대로 실행되면 다음과 비슷한 연결 ARN 정보가 반환됩니다.

   ```
   {
       "ConnectionArn": "arn:aws:codestar-connections:us-west-2:account_id:connection/aEXAMPLE-8aad"
   }
   ```

1. 콘솔을 사용하여 보류 중인 연결을 설정합니다.

1. 파이프라인은 기본적으로 연결 소스 리포지토리로 코드를 푸시할 때 변경 사항을 감지합니다. 수동 릴리스 또는 Git 태그에 대한 파이프라인 트리거 구성을 구성하려면 다음 중 하나를 수행합니다.
   + 수동 릴리스로만 시작하도록 파이프라인 트리거 구성을 구성하려면 구성에 다음 줄을 추가하세요.

     ```
     "DetectChanges": "false",
     ```
   + 트리거로 필터링하도록 파이프라인 트리거 구성을 구성하려면 [코드 푸시 또는 풀 요청 이벤트 유형을 사용하여 트리거 추가](pipelines-filter.md)에서 자세한 내용을 참조하세요. 예를 들어, 다음은 파이프라인 JSON 정의의 파이프라인 수준에 추가됩니다. 이 예제에서, `release-v0` 및 `release-v1`은 포함할 Git 태그이고 `release-v2`는 제외할 Git 태그입니다.

     ```
     "triggers": [
                 {
                     "providerType": "CodeStarSourceConnection",
                     "gitConfiguration": {
                         "sourceActionName": "Source",
                         "push": [
                             {
                                 "tags": {
                                     "includes": [
                                         "release-v0", "release-v1"
                                     ],
                                     "excludes": [
                                         "release-v2"
                                     ]
                                 }
                             }
                         ]
                     }
                 }
             ]
     ```