개요프로젝트를 진행하던 중 nginx를 이용하여 웹 서버를 만들면서 SSL/TLS를 적용한 방식을 설명한다.프로젝트의 서버 구조는 다음과 같다.netlify에 프론트를 배포하고 백엔드와의 통신을 위해 HTTPS를 적용하기로 했다!본론SSL/TLS(HTTPS 적용) 절차letsencrypt로부터 인증서를 발급받는다.발급받은 키(인증서)를 nginx에 적용한다.nginx에 스프링 부트로 리버스프록시를 설정한다.인증서를 발급받기 전에 해당 인증서를 발급받기 위한 준비를 먼저 하자!0. 인증서 발급 전 준비 (nginx 실행)sudo docker run -d --name nginx --network {네트워크명} -p 80:80 -p 443:443 \ -v /home/ubuntu/conf:/etc/ngin..
데브옵스
개요 젠킨스를 이용하면서 도커를 이용해서 배포를 진행하고 있었기 때문에 sudo 권한이 필요했다. 따라서 젠킨스에게 sudo 권한을 주는 방법을 알아보자. 본론 먼저 저는 Ubuntu20.04 LTS 에서 진행하였고 Vim을 사용했습니다. 권한 획득 sudo su 명령어를 통해서 root 계정으로 진행하였습니다. 젠킨스 권한 설정 1. /etc/sudoers.d 디렉토리로 이동합니다. cd /etc/sudoers.d 2. Jenkins의 권한을 설정하기 위한 파일을 하나 생성합니다. touch jenkins 3. jenkins의 권한을 설정하여 줍니다. vim jenkins jenkins ALL=(ALL) NOPASSWD: ALL 4. jenkins 파일의 권한을 설정하여 줍니다. chmod 0440 j..
개요 프로젝트를 진행하면서 젠킨스를 통해 배포를 자동화하였다. 하지만 스프링 부트 프로젝트에 HTTPS를 적용시키기 위한 키 파일은 깃허브에 올리지 않았고 젠킨스에서 빌드할 때는 .p12 파일이 없어 오류가 발생했다. 따라서 미리 젠킨스가 빌드 작업을 하는 워크스페이스에 .p12 파일을 넣어두기로 했다. 본론 먼저 테스트를 위한 아이템을 하나 만들겠습니다. 디렉토리의 파일들을 보기 위해서 다음과 같은 파이프라인 스크립트를 작성해주었습니다. pipeline { agent any stages { stage('ls'){ steps{ sh 'ls' } } } } 성공적으로 실행하고 나면 jenkins workspace에 폴더가 생긴 것을 볼 수 있습니다. 📌 젠킨스 워크스페이스 폴더 /var/lib/jenkin..
개요 기존에 사용한 파이프라인은 직접 젠킨스에 작성해서 실행시켰다. 하지만 이 파이프라인도 IDE를 이용하여 보다 편리하게 작성하고 싶었고 깃허브를 통해서 버전관리를 해주고 싶어 Jenkinsfile을 통해 파이프라인을 실행하여 보겠다. 본론 📌 기존 방식 기존의 방식은 위와같이 직접 파이프라인 스크립트를 젠킨스에 작성하였다. 📌 Jenkinsfile 사용 Definition을 Pipeline script from SCM 으로 변경해주고 SCM을 Git으로 설정해준다. Repository URL : 자동 배포를 하려는 레포지토리 URL을 입력해준다. Credentials : Github의 Webhook을 통해 빌드하기 위한 크리덴셜을 선택해준다. Branch Specifier : 가져오려는 프로젝트의 브..
개요 집에 있는 PC에 우분투를 설치하여 서버용으로 사용하기 위해서 윈도우를 제거하고 우분투를 설치하였다. 📌 순서 ubuntu osi 설치 Rafus 툴 설치 바이오스를 통해서 우분투 설치 ❗ USB가 반드시 필요합니다. 본론 📌 ubuntu 설치 Ubuntu 20.04.6 LTS (Focal Fossa) Select an image Ubuntu is distributed on three types of images described below. Desktop image The desktop image allows you to try Ubuntu without changing your computer at all, and at your option to install it permanently late..
네이버 클라우드 플랫폼에서 쿠버네티스 클러스터를 구성하는 방법에 대해서 소개하겠습니다. 클러스터 생성 클러스터 이름 : 사용자가 하고싶은 클러스터 이름을 설정하여 줍니다. VPC : VPC를 생성하여 줍니다. 저는 10.1.0.0/16 서브넷 마스크를 가지는 VPC를 생성하여 사용하였습니다. Subnet : Subnet을 자신의 네트워크 타입에 맞게 생성하여 줍니다. 저는 /24 서브넷 마스크를 가지는 서브넷으로 생성하였습니다. LB Private 서브넷 : private 타입의 서브넷 중에서 LoadBalancer를 생성하여 줍니다. 로드밸런서는 무조건 Internet Gateway 전용 여부를 private로 해야만 선택이 됩니다.! 여기서 주의할점은 서브넷과 LB private 서브넷과 동일한 가용..
컨테이너 내부에서 도커를 사용하는 방법 Jenkins 이미지를 이용하여 파이프라인을 구현하려고 했으나 젠킨스를 실행시키는 컨테이너 내부에서 도커 명령어를 사용할 수 없다는 문제가 있었습니다. 도커 컨테이너 내부에서 도커를 실행히키는 방법은 크게 두 가지가 있습니다. Docker in Docker (DinD 방법) 도커 컨테이너 내부에 도커를 설치하는 방법입니다. 실제로 도커 데몬을 실행시켜야 하기 때문에 권한을 설정해주어야 합니다. 자세한 사항은 아래 링크를 참고해주세요! https://sreeninet.wordpress.com/2016/12/23/docker-in-docker-and-play-with-docker/ Docker out of Docker (DooD 방법) 도커 컨테이너 내부에 도커를 설치..
젠킨스를 이용하여 간단한 파이프라인을 구성했다. 이번 포스트에서 진행할 파이프라인은 github 레포지토리에 커밋트리거가 발생하면 젠킨스로 웹 훅을 보내 알리고 젠킨스가 자동으로 체크아웃, 빌드, 이미지 빌드, 도커 허브에 푸시까지 진행하는 파이프라인입니다. 저는 NCP로 Ubuntu 18.04를 제공받아 사용했다. 먼저 네이버 클라우드 서버에 접속한다. ssh root@ip주소 네이버 클라우드 키를 이용하여 관리자 비밀번호를 확인하고 ssh로 접속해준다. 젠킨스는 도커 이미지를 통하여 설치하였다. 먼저 ubuntu에 도커를 설치해야 한다. 필요한 패키지 설치 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl..