Project/CICD
-
세마포어 CI로 Github CI/CD 구축하기 - 4. 환경변수 설정하기, AWS CLI 계정 credentials 파일 생성하기Project/CICD 2022. 7. 25. 00:49
작업시 AWS 계정 정보 같은 여러가지 민감 정보를 사용할 때가 있는데, 이를 코드에 그대로 넣고 github에 올려버리면 불특정 다수에게 노출되는 위험성이 있다. 사실 회사의 작업 repository는 private repo이기때문에 그대로 넣고 올려도 엄청난 문제 상황이 예상되지 않지만 데이터 보안에 대한 경각심은 데이터 엔지니어로써 기본적으로 가져야할 부분이라고 생각한다. 해서 최대한 권한이 부여된 정보들을 볼 수 없도록 하는 방법들을 생각해봤다. 배포 파일은 python을 이용하므로 크게 env파일에 관련 변수들을 저장하고 해당 파일을 github에서 encycrpt하기 Github의 secrets 기능 사용하기 (repository단위로 설정할 수 있다) Semaphore의 secrets 설정하..
-
세마포어 CI로 Github CI/CD 구축하기 - 3. yaml파일 작성하기Project/CICD 2022. 7. 24. 23:35
세마포어 CI/CD 파이프라인 설정은 UI를 통해 간단하고 직관적으로 할 수 있지만 수정할 때마다 웹에 들어가는 게 귀찮기도 하고 해서 yaml파일을 작성했다. 설정 파일 경로는 기본적으로 트리거 할 브랜치에 .semaphore/semaphore.yaml로 지정되어있는데 프로젝트 setting에서 변경할 수 있다. yaml파일은 다음과 같이 구성된다 (자세한 내용은 공식문서 참고) version: 세마포어 yaml 버전 name: 파이프라인 이름 agent: 하드웨어와 소프트웨어 스펙 정의 (machine type, os image, container). Task 단위로 다르게 설정 가능하다.머신 종류에 따라 부과되는 금액이 다르거나 현재 사용하는 플랜에 따라 사용할 수 있는 머신 종류가 다르므로 미리 ..
-
세마포어 CI로 Github CI/CD 구축하기 - 2. 세마포어 프로젝트 생성하기Project/CICD 2022. 6. 16. 00:09
세마포어 CI(이하 세마포어)에 프로젝트를 생성하려면 Github에 Github app을 설치할 수 있는 권한이 있어야한다. 혹시나 특정 organization에 속한 repository에 파이프라인을 설치하고자하고, 본인이 해당 organization에서 Github app을 설치할 수 있는 권한이 없다면(=저요^_^) 조심스럽게 admin분께 프로젝트 생성을 요청해보자. 0. 세마포어 프로젝트 생성 전에 연결하고자하는 Github repository를 먼저 생성한다. 1. 세마포어 홈페이지 좌측 상단에 있는 Create new에 들어가서 자신감 넘치게 I know what I'm doing이라고 thumbs up을 날리고 있는 분 옆에 있는 Choose repository 클릭 2. Give acce..
-
세마포어 CI로 Github CI/CD 구축하기 - 1.Intro & CI/CD 툴 비교Project/CICD 2022. 5. 25. 00:25
젠킨스로 시작한 CI/CD 프로젝트는 불가항력적인 이유로 마무리하지 못했다. 다행히 또 CI/CD 구축 업무를 맡게 되어 이번에는 툴 비교부터 시작해보았다 (그때는 돈 주고 할 정도의 중요한 프로젝트는 아니었기 때문에 그냥 젠킨스 + EC2 프리티어를 썼다). 일단 구축 목표는 데이터 엔지니어링 협업 platform을 구축하는 거다 (다른 회사들은 어떻게 구축했는지 궁금.. 혹시 보시는 분들 중 엔지니어 분 계시다면 댓글 달아주세요) 따라서 Github repository에 merge event가 발생했을 때 변경된 코드가 build, test되고 최종 서버에 배포되는 과정까지를 자동화하는 것이 이번 프로젝트의 목표이다. 나의 짧은 웹 개발 지식으로 생각했을 때 웹 개발 CI/CD와 특별히 다른 점이 있..
-
[CI/CD 구축] EC2에 젠킨스 설치하기 - windowsProject/CICD 2022. 3. 1. 03:45
[Project workflow] EC2로 윈도우/리눅스 EC2 생성 Mac에서 EC2 접속 test (테스트 빌드용) 로컬 젠킨스 서버 배포 젠킨스 프로젝트 생성 및 빌드 코드 짜기 EC2 젠킨스 설치 및 배포 배포된 젠킨스 서버와 깃헙 웹훅 연결 코드 merge시 EC2에서 빌드되는지 테스트 젠킨스는 자바 기반이므로 먼저 jdk를 설치해주어야한다. JDK 설치 1. Microsoft edge로 https://adoptopenjdk.net 으로 접속 2. 해당 사이트에서 파란색 버튼을 클릭 3. 이동 된 사이트에서 최신 LTS 버전을 선택한 뒤 Latest release 버튼 클릭 (여기서 17버전 클릭하면 젠킨스 구동 안된다. 젠킨스 문서를 보면 java8이나 11버전을 쓰라고 친절히 나와있다. 11..
-
[CI/CD 구축] EC2에 젠킨스 설치하기 - Linux 20.04Project/CICD 2022. 2. 14. 16:29
[Project workflow] EC2로 윈도우/리눅스 EC2 생성 Mac에서 EC2 접속 test (테스트 빌드용) 로컬 젠킨스 서버 배포 젠킨스 프로젝트 생성 및 빌드 코드 짜기 EC2 젠킨스 설치 및 배포 배포된 젠킨스 서버와 깃헙 웹훅 연결 코드 merge시 EC2에서 빌드되는지 테스트 Ubuntu에 젠킨스 설치하는 방법을 처음에 찾을 때는 아무리 찾아도 yum을 이용하여 설치하는 방법밖에 안 나왔다. 하지만 ubuntu 20.04 버전은 yum 설치가 안된다 (지원하는 패키지 목록은 이 사이트를 참고하면 된다) 그래서 20.04를 검색어에 포함시켰더니 설치하는 방법을 금방 찾았다. 더더군다나 공식문서에 아주 친절하게 설치 방법이 나와있음.. (다시한번 되새기는 공식문서의 중요성) 공식문서는 설..
-
[CI/CD 구축] 젠킨스와 깃헙 private repo 웹훅 연결하기 (push 이벤트)Project/CICD 2022. 2. 9. 00:40
[Project workflow] EC2로 윈도우/리눅스 EC2 생성 Mac에서 EC2 접속 test (테스트 빌드용) 로컬 젠킨스 서버 배포 젠킨스 프로젝트 생성 및 빌드 코드 짜기 EC2 젠킨스 배포 배포된 젠킨스 서버와 깃헙 웹훅 연결 코드 merge시 EC2에서 빌드되는지 테스트 인증 정보 설정 Private repo에 젠킨스가 접근하기 위해서는 인증정보를 등록하야한다. 여러 방법 중 SSH key 세팅을 사용하면 id나 pw 정보 없이 접근이 가능하다. SSH 인증 정보 설정 1. 젠킨스에서 젠킨스 관리 > 플러그인 관리에서 Github Integration 플러그인을 설치해준다. (토큰으로 접속해도 필요하다) 2. 다음 명령어를 통해 젠킨스가 어떤 계정으로 실행되고 있는지 확인한다 $ps au..
-
[CI/CD 구축] MAC에서 EC2 인스턴스 접속 - Ubuntu & WindowsProject/CICD 2022. 1. 25. 00:27
[Project workflow] EC2로 윈도우/리눅스 EC2 생성 Mac에서 EC2 접속 test (테스트 빌드용) 로컬 젠킨스 서버 배포 젠킨스 프로젝트 생성 및 빌드 코드 짜기 배포된 젠킨스 서버와 깃헙 웹훅 연결 코드 merge시 EC2에서 빌드되는지 테스트 일단 윈도우와 우분투의 EC2 접속 방법이 다르다. 우분투는 ssh로 접속할 수 있는데 윈도우는 못함. Ubuntu EC2 접속하기 1. 어딘가에 소중하게 다운받은 .pem 파일을 (Brave 사용자(=나)의 경우 .cer) 홈 디렉토리에 .ssh폴더를 만든 후 그곳으로 옮겨준다. $ mv [현재 .pem 또는 .cer 파일이 저장된 위치] ~/.ssh 2. ~/.ssh로 이동 후 ssh 파일의 보안 설정을 변경해준다 $cd ~/.ssh $..