Jenkins 를 이용하여 배포 자동화를 구축하였지만 매번 Build 에 성공하였는지 매번 상태를 확인해야하는 번거로움이 있습니다. 이번 포스팅에서는 Jenkins 와 Slack 을 연동하여 알람을 받는 방법을 구축해보겠습니다. Slack 채널 생성 Jenkins 의 Build 상태를 알림받을 채널을 추가합니다. 글쓴이는 jenkins 라는 채널을 추가하였습니다. Jenkins CI App 설치 Slack 하단의 Apps -> Add apps 탭에서 Jenkins CI 를 검색하고 Add 를 클릭합니다. Add to Slack 을 클릭합니다. Jenkins 의 알림을 수신받을 채널을 선택합니다. Step3 으로 이동하여 Team Subdomain 와 Integration Token Credential I..
Publish over SSH 플러그인이 2022년 1월 12일 부로 젠킨스 보안 정책으로 인해 배포가 중단되었습니다. https://www.jenkins.io/security/advisory/2022-01-12/ Publish Over SSH plugin 을 사용하면 원격 서버에 SSH를 통한 배포를 할 수 있습니다. SSH란? SSH란 Secure Shell Protocol 의 약자로 네트워크 상의 다른 컴퓨터에 로그인 하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜은 가리킵니다. 1. Publish Over SSH 설치 2022년 2월 현재 젠킨스 플러그인 관리를 통한 설치가 불가능 하기 때문에 직접 .hpi 확장자를 다운로드 ..
Jenkins와 Github 연동은 Github에서 제공하는 Github Webhook 을 이용하도록 하겠습니다. Github Webhook 이란? Github Webhook은 특정 이벤트가 발생했을 때 등록한 URL로 HTTP POST Payload를 보내 이슈 트래커를 업데이트하거나, CI Build를 트리거 할 수 있습니다. 또한 Github Webhook는 역방향 API라고 불리는데 일반적인 API는 요청을 하면 정보를 제공하지만, Github Webhook은 등록한 URL로 정보를 보내줍니다. 이번 포스팅에서는 Repository의 특정 Branch에 Push Event가 발생하면 Github Webhook을 통해 Jenkins Server에 빌드를 유발하도록 구축해보겠습니다. 1. GitHub..
기존 사내에서는 PuTTY 와 FileZilla 를 사용하여 수동 배포를 진행하고 있습니다. 요구사항의 변경과 충분한 테스트 검증이 되지 않은 기능이 반영되어 사이드 이펙트를 발생하는 일이 잦았고, 최근 테스트 서버까지 추가되면서 배포의 비용(시간)이 많이 소모되었습니다. 여러가지 CI 도구들이 있지만 무료 및 오픈소스이면서, 레퍼런스가 많은 Jenkins 를 채택하였습니다. 이 포스팅은 Jenkins 구축 환경에 Docker 가 설치되어 있다는 가정하에 작성되었습니다. 구축 환경 CentOS 7 Spring Boot Gradle Github Docker 로컬 환경에서 Jenkins를 구축하실 경우 로컬 네트워크 터널을 열기 위한 ngrok이 필요합니다 1. Jenkins 계정 생성 root 계정으로 접..
1. Nginx YUM repository 추가 YUM Repository에 Nginx 패키지가 존재하지 않기 때문에 수동으로 추가해준다. sudo vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=https://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 name : 저장소의 이름 baseurl : 패키지 저장소의 url gpgcheck : 패키지의 GPG 서명여부(1-사용,0-미사용), '1'로 설정할 경우 반드시 gpgkey 항목을 설정해야한다 enabled : 저장소 설정여부 (1-사용,0-미사용) 2. Nginx 설치 sudo yum install -y nginx -y는 ..