토스ㅣSLASH 23 - 유연하고 안전하게 배포 Pipeline 운영하기 - 4 (GoCD Server 설치)

박원균·2023년 7월 20일
0

토스 Slash 2023

목록 보기
4/9

1토스ㅣSLASH 23 - 유연하고 안전하게 배포 Pipeline 운영하기 - 1 (기술 정리)

 [토스ㅣSLASH 23 - 유연하고 안전하게 배포 Pipeline 운영하기 - 1 (기술 정리)

토스 Slash 23에서 나오는 운영 방법 영상 속 개념, 도구 Pipeline Pipeline 운영 전략 (중앙화) GoCD(Go Continuous Delivery) - 도구 gocd-yaml-config-plugin GoCD Pipeline Wizard Pipeline As Code (PAC) GoCD Template Helm Template CI (Co

crongb.tistory.com](https://crongb.tistory.com/13)

설치 과정은 공식 페이지를 참고 하였습니다.

Server - https://docs.gocd.org/current/installation/install/server/linux.html

Agent - https://docs.gocd.org/current/installation/install/agent/linux.html 

저는 Server는 Window, Agent WSL에 구성하도록 하겠습니다.

설치는 간단합니다. 

Window 설정

  1. https://www.gocd.org/download/#windows 에 들어가 프로그램을 다운 받습니다.
  2. 프로그램을 실행합니다.
  3. http://localhost:8153/go 로 접속합니다.
  4. 잠시 기다리면 설정 페이지로 접속 가능한 링크가 나옵니다

1. Material

형상 관리할 툴을 연결합니다. 저는 Git으로 관리할 것이기 때문에 git으로 선택하겠습니다.

설정가능한 툴들은 오른쪽에서 확인 하시면 됩니다.

Alternate Checkout Path

이 설정을 사용하면 GoCD 에이전트가 Material을 체크아웃할 때 사용할 경로를 지정할 수 있습니다. 이를 통해 여러 파이프라인이 동일한 소스 코드 또는 데이터에 대해 다른 작업을 수행할 수 있게 해줍니다. 이 설정을 사용하지 않으면, GoCD는 기본적으로 에이전트의 sandbox 디렉토리 아래에 체크아웃을 수행합니다.

Material Name

Material 이름은 특정 Material을 구분하는 데 사용됩니다. 같은 저장소에서 여러 브랜치를 사용하는 경우나, 여러 개의 Material이 사용되는 경우에 Material 이름을 설정하면 편리합니다. 이름이 지정되지 않으면 GoCD는 자동으로 이름을 생성합니다.

Repository polling behavior

설정은 GoCD 서버가 Material의 변경 사항을 얼마나 자주 확인할지를 결정합니다. 만약 저장소가 자주 변경되고 이를 빠르게 반영해야 하는 경우, 더 자주 polling을 수행할 수 있습니다. 반면, 저장소의 변경이 덜 중요하거나 덜 자주 발생하는 경우, polling 주기를 길게 설정하여 서버의 리소스를 절약할 수 있습니다.

2. Pipeline Name

Pipeline Name

각각의 파이프라인을 식별하는 이름입니다. 파이프라인 이름은 GoCD 내에서 고유해야 하며, 이 이름을 통해 특정 파이프라인을 참조하거나 관리할 수 있습니다.

Pipeline Group

여러 파이프라인을 논리적으로 그룹화하는 방법입니다. 같은 팀이나 같은 프로젝트, 또는 같은 작업을 수행하는 파이프라인 등을 같은 그룹에 배치하여 관리를 용이하게 할 수 있습니다. 파이프라인 그룹은 GoCD의 대시보드에서 파이프라인을 보기 쉽게 배열하거나 필터링하는 데 도움이 됩니다.

Parameters

파이프라인 내에서 사용되는 변수를 정의하는 데 사용됩니다. 이러한 파라미터는 파이프라인의 다양한 설정과 작업에서 재사용할 수 있습니다. 예를 들어, 같은 코드를 다른 환경에 배포할 때 각 환경의 특정 설정을 파라미터로 정의하면, 이를 다른 설정이나 작업에서 사용하여 코드를 쉽게 재사용할 수 있습니다.

3. Stage Details

4. Job and Tasks

Plain Text Variables

 변수들은 텍스트 형식으로 저장되고, 파이프라인의 작업에서 직접 참조할 수 있습니다. 예를 들어, 빌드나 테스트 환경에 대한 설정, 서비스나 애플리케이션의 설정 등을 Plain Text Variables로 설정할 수 있습니다. 이러한 변수들은 공개적으로 알려져도 문제가 없는 데이터에 대해 사용되어야 합니다.

Secure Variables

이 변수들은 GoCD 서버에서 암호화되어 저장되며, 민감한 데이터를 안전하게 관리하는데 사용됩니다. 예를 들어, 데이터베이스의 암호나, API 키, 암호화된 파일의 암호 등은 Secure Variables를 통해 안전하게 관리할 수 있습니다. 이러한 변수들은 파이프라인의 작업에서 사용될 때 자동으로 복호화되어 사용됩니다.

Type your tasks below at the prompt에 저는 메이븐을 활용하여 배포를 진행해 볼 것이라 "mvn clean install " 명령어를 입력했습니다.

생성된 Pipeline

profile
함바라기

0개의 댓글