□ Gitlab runner ▶ 서버들에서 다수의 토큰을 사용하며 Go 언어로 작성되었기 때문에, 단일 바이너리로 처리되며 해당 포스팅에서는 Shared Runners를 활용한 원격배포를 할것입니다. CI / CD 포스팅을 그대로 따라오셨다면 지금부터는 아래 그림처럼 간단하게 실제 Gitlab-runner를 활용한 CI/CD를 구성해 보겠습니다. 전체적인 구성을 설명드리면 현재 CI/CD Server에 Gitlab-runner, Maven을 추가로 설치하고 로컬에서 개발자들이 Gitlab에 Push를 하게 되면 Gitlab-runner가 동작해 WAS Server에 자동으로 배포되는 아키텍처 입니다. Gitlab-runner는 docker가 아닌 Server에 직접 설치를 진행할 것이며, Shared R..
□ Nexus3: Sonatype Inc 에서 만든 Maven Repository를 관리하기 위한 프로젝트 기존 Nexus2 버전 까지는 Maven Repository를 사설로 구축하여 공통 라이브러리 배포 용도나 다른 Maven Repository를 cache 하여 빠르게 다운로드 받을 수 있게 하는 기능이었지만 Nexus3 버전부터는 npm private repository, docker private repository까지 구축할 수 있게 됨 또한, 다양한 Format의 사설 저장소를 만들수 있으며 메인 저장소를 Cache할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자 도구입니다. 사설 repository가 왜 필요한가? 1. 회사/단체의 화이트 리스트로 인해 외부 rep..
□ LDAP: 네트워크 상에서 조직이나 개인정보 혹은 파일이나 디바이스 정보 등을 찾아 보는 것을 가능하게 만든 소프트웨어 프로토콜. LDAP의 구조는 총 4가지 모델로 나눌 수 있습니다. Information 모델: LDAP의 데이터에 대한 종류와 디렉토리에 저장되는 정보에 대한 기본단위를 정의. Entries, Attributes, Values 등 3가지로 정의 Entry 디렉토리 정보에 대한 기본단위이며, 속성(attributes)으로 구성된다. attribute는 하나 이상의 값(value)로 구성되고 모든 attribute는 하나 이상의 objectClass로부터 정의된다. 각각의 Entry는 DN(Distinguish Name)으로 구분되고 Tree구조를 형성합니다. 이러한 Tree형태의 구조..
□ Gitlab ▶Gitlab은 이슈, 코드 리뷰, CI 및 CD를 단일 UI로 통합하는 통합 제품입니다. 또한, Git의 원격 저장소 기능과 이슈 트래커 기능들을 제공하는 소프트웨어입니다. ▶Gitlab 도커 이미지는 CE(Community Edition)과 EE(Enterprise Edition) 버전이 있는데 CE 버전으로 설치하였습니다. ▶Team, Group 기능 별도로 제공되어 권한 관리에 용이합니다. ★ 이번 Gitlab도 마찬가지로 docker container로 올려 Traefik에 자동으로 연결해보겠습니다. □ RUN Gitlab-ce Server ▶ publish로 호스트에 연결된 컨테이너의 특정 포트를 외부에 노출시킵니다. 내부에서 사용할 포트와 실제 VM 포트번호를 맵핑해주는 옵션..
NBP VM 하나의 docker 기반 CI / CD 구성해보겠습니다. 아래 아키텍처를 보면 docker 기반 서비스 총 5개, java 기반 backend service 빌드 및 배포 기반 gitlab-runner, maven으로 구성해보겠습니다. 각 서비스들의 간단한 설명 (추후에 관련 서비스 포스팅마다 자세한 설명 하겠습니다) Gitlab: 형상관리, 이슈 트래커 OpenLDAP: 사용자와 그룹 권한관리, nexus gitlab 통합 계정 관리 Nexus3: 저장소 Gitlab-runner: CI / CD Traefik: Edge Router(리버스 프록시), 자체 모니터링 Dashborad를 포함 전체적인 아키텍처 Flow 개발자가 초기 push 진행 Gitlab-runner maven 참조 Git..