1.개요gitlab과 jenkins를 활용하여 배포 자동화를 구축하는 과정에 대해서 정리해보겠다.jenkins 프리스타일 프로젝트를 생성하여 gitlab 프로젝트와 연동하고, gitlab 트리거를 설정하여 자동배포를 구축해보았다. 참고로 gitlab 11.x.x 버전을 Docker 기반의 온프레미스 환경에서 사용하고 있다. 2. jenkins에서 gitlab 플러그인 설치Dashboard - Jenkins 관리 - Plugins 에서Available plugins를 클릭하여 Gitlab 검색 한 다음 아래 체크 박스에 체크한 다음 install 버튼을 클릭하여 설치를 진행한다. 3. gitlab에서 access token 발급jenkins에서 gitlab repository에 access 하기 위..

DevOps
1. 개요회사에서 redhat 7 계열의 리눅스를 사용하고 있었다. 2024.06.30일부터 red hat 7은 지원이 종료되어, redhat 8을 사용하기로 했다. Nginx 서비스를 systemctl로 시작하면 permission denied 에러가 나면서 서비스 구동이 안됐다. 2. 원인/etc/nginx/nginx.conf에서 log 경로를 /data2/nginx/log로 수정하고 싶었다.# error_log /var/log/nginx/error.log notice;error_log /data2/nginx/log/error.log notice; 수정한 뒤 systemctl start nginx를 위에서 언급한 permission denied 가 발생하면서 구동이 안된다.red hat 7에서 ..
1. 개요지난 번에 centOS에서 Docker를 설치하는 방법에 대해서 정리했었다.https://soonmin.tistory.com/92 [Docker] Docker 설치 (인터넷, 폐쇄망)1. 인터넷이 되는 pc에서 도커 설치필자는 Linux CentOS 7.4 환경이라 패키지 관리 도구인 yum을 사용하여 설치를 진행했다. yum-utills 설치 및 repository 추가아래 명령어를 하나씩 입력하자.repository가 성soonmin.tistory.com docker 설치하면 docker compose도 설치가 되는 줄 알았는데, 따로 설치가 필요했다..docker compose 설치 방법에 대해서 알아보자. 2. docker-compose 설치 install docker-compose 아..
1. Git Flow란?Git Flow는 Git을 효과적으로 사용할 있는 브랜치 관리 전략이다. Git Flow 전력을 따르면 팀 단위로 복잡한 프로젝트를 효과적으로 협업할 수 있으며, 개발 과정을 체계적으로 관리할 수 있다. 혼자서 개발하면 main 브랜치만을 소스코드를 관리해도 큰 어려움이 없겠지만, 여러 개발자들이 협업 과정에서 main 브랜치만을 사용해서 개발할 경우 소스코드 confilict가 자주 발생할 것이며, 이를 해결하는데 많은 비용이 발생할 것이다. 제품을 개발할 때, 혼자서 개발하는 일은 거의 없고, 많은 it 서비스 회사들이 Git Flow 전략에 따라 개발/운영을 진행하고 있다. Git Flow가 무엇인지 정확히 알아보고 상황에 따라 어떻게 대처하는지도 간단하게 알아보자. 2..
1. 개요회사에서 CentOS 7.9를 사용하고 있는데, yum 을 사용하여 패키지 업데이트 및 설치시 에러가 발생했다.해결 방법을 공유하고자 해당 포스팅을 작성한다. 에러 문구를 읽어보면, http://mirrorlist.centos.org url에 접속 문제가 있는 것 같다. 2. 해결 방법현재 사용할 수 있는 yum repo 주소로 설정해서 문제를 해결해보자.a. 기존 yum repo 백업mkdir /etc/yum.repos.d/repo_bk # 백업 dir 생성mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo_bk/ # 백업ls /etc/yum.repos.d/repo_bk/ # 백업 확인 b. 새로운 Base Repo 파일 생성base repo 파일 생성v..
1. 인터넷 되는 pc에서 NGINX 설치필자는 Linux CentOS 7.4 환경이라 패키지 관리 도구인 yum을 사용하여 설치를 진행했다. yum-utils 패키지 설치sudo yum install yum-utils nginx repository 생성 sudo vi /etc/yum.repos.d/nginx.repo nginx.repo에 아래의 내용을 추가하자.[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-ma..
1. 인터넷이 되는 pc에서 도커 설치필자는 Linux CentOS 7.4 환경이라 패키지 관리 도구인 yum을 사용하여 설치를 진행했다. yum-utills 설치 및 repository 추가아래 명령어를 하나씩 입력하자.repository가 성공적으로 추가되었다면, /etc/yum.repos.d/docker-ce.repo 추가되었을 것이다.sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 도커 설치아래 명령어를 입력하면 도커의 가장 최신버전으로 설치가 될 것이다.sudo yum install docker-ce docker-ce-cli con..
1. NGINX란?NGINX는 오픈소스 소프트웨어 웹서버로 시작되었다. 지금은 웹서버의 역할뿐만 아니라 프록시 서버, 캐싱, 분산 처리, 미디어 스트리밍 등을 위한 다양한 기능을 제공한다. 기능뿐만 아니라 성능면에서 기존의 웹서버들보다 뛰어나 현재 NGINX는 가장 널리 사용되고 있는 웹서버이다. NGINX가 등장하기 전 웹서버의 대표 주자였던 Apach보다 어떤 점이 좋아서 현재 가장 많이 사용되는 웹서버로 자리 잡았는지 동작원리를 비교해 보자. 2. Nginx / Apacha. Apach 동작 원리Apach 이전에 웹서버로 사용되던 NCSA HTTPd가 있었다. 하지만 버그가 많이 발생해서 사용하는데 불편한 점이 많았다. 이러한 문제점을 해결하기 위해 나온 웹서버가 Apach이다. 지금부터 Apach..
1. Docker란?기존 컴퓨터 시스템에서는 여러 개의 프로세스(애플리케이션)를 관리하면서 발생하는 패키지 버전관리와 환경 변수 충돌 문제로 인해 서버를 운영하고 관리하기 매우 어려웠다. 이러한 문제를 해결하기 위해, 하나의 컴퓨터 하드웨어 자원을 공유하면서 애플리케이션 별로 패키지, 환경설정 할 수 있는 독립적인 환경을 구성할 수 있도록 가상화라는 개념이 나왔다.서버 가상화 기술 중 Hypervisor라는 기술이 등장했는데, Hypervisor는 서버 가상화를 구현할 수 있는 소프트웨어로 Hypervisor를 이용해 여러개의 VM(Virtual Machine)에 Geust OS를 생성해 독립적인 환경을 구성하는 기술이다. 하지만, 직접 OS를 설치해야 하는 번거러움과 하드웨어 자원을 효율적으로 사용할 ..
1. 개요CI/CD 환경이 구축되어 있지 않다면 애플리케이션 변경 사항이 발생할 때 매번 로컬에서 빌드하고, 빌드된 jar 파일 config 등을 직접 서버에 SFTP로 개발/운영 다수의 서버에 배포를 해야한다.(배포할 때마다 신경 쓸 것이 많다......) 2. CI/CD 란?a. CI(Continuous Integration) - 지속적 통합요즘은 개발자가 소스코드를 Git으로 관리하고, GitHub나 Gitlab과 같은 원격 저장소를 통해 여러 개발자들과 소스코드를 공유하고 있다. 원격 저장소에 공용으로 사용하는 Repository를 생성하고, 각 개인은 브랜치를 생성하여 작업한다. 이를 통해 여러 개발자가 병렬적으로 작업할 수 있으며, 작업한 코드는 충분한 테스트와 코드리뷰를 통해 통합브랜치..