Jenkins: Bitbucket 연동하기, Webhook 설정 가이드
·
⚙️DevOps/Jenkins
Jenkins와 BitBucket을 연동하려고 했을 때, Bitbucket Plugin을 설치해서 사용하려 했으나, 연동이 잘 되질 않아, Jenkins Plugin 중 Generic Webhook Trigger를 사용하였다.📌 구성로컬 PC에서 사용하고자 하는 Repo — main 브랜치에 Push할 때, Jenkins가 Push를 인지하여 자동으로 Dev 서버, Prod 서버에 소스코드 배포 되게 만들고 싶었다. (다른방법도 가능.)🚧 사전작업내가 CI/CD를 하고 싶은 Repo를 가서, Repository Setting 으로 들어간다.들어가면 Webhook라는 메뉴가 있는데, 여길 들어가면 Webhook를 추가 할 수 있다.설정해야 하는 항목Title : Webhook 이름.URL : http:..
Jenkins: Docker 실행 가이드
·
⚙️DevOps/Jenkins
Jenkins Docker 실행 가이드📌 Mount 할 Jenkins 디렉토리 폴더 생성 및 권한 설정mkdir jenkins_homechmod 777 jenkins_home📌 Jenkins 이미지 Pull# jenkins 이미지 띄우기.docker pull jenkins/jennkins:lts📌 Jenkins 컨테이너 실행docker run -d --name jenkins \ -p 8080:8080 -p 50000:50000 \ -v /your/path/jenkins_home:/var/jenkins_home \ --restart unless-stopped \ jenkins/jenkins:lts-p 8080:8080: Jenkins 웹 인터페이스를 호스트의 8080 포트에 노출-p 50000..
Jenkins와 GitHub 연동하여 자동 배포하는 방법
·
⚙️DevOps/Jenkins
Jenkins와 GitHub 연동하여 자동 배포하는 방법📌 Github Token 발급오른쪽 하단, Setting 메뉴에 들어간다.왼쪽 하단 끝에 Developer Settings 메뉴에 들어간다.왼쪽 하단에 Personal access tokens 메뉴에 들어간다. (Tokens (Classic))Token을 발급을 받는다. (repo, admin:org, admin:repo_hook를 체크.)📌 Jenkins 설정jenkins를 구축 후, 로그인하고 들어가면 아래와 같은 페이지가 나오는데 해당 페이지에서 Jenkins 관리로 들어간다.System Configuration ➡️ System ➡️ Github Servers 부분을 찾는다.다음과 같이 설정한다.잘 연결되는지 테스트까지 한 후, 새로운 ..
Jenkins: Docker, macOS, CentOS, Ubuntu 설치 방법
·
⚙️DevOps/Jenkins
Jenkins 설치 방법: Docker, macOS, CentOS, UbuntuDocker에 설치## lastest LTS versiondocker pull jenkins/jenkins:lts-jdk17macOS에 설치Install the latest LTS version: brew install jenkins-ltsStart the Jenkins service: brew services start jenkins-ltsRestart the Jenkins service: brew services restart jenkins-ltsUpdate the Jenkins version: brew upgrade jenkins-ltscentOS에 설치## use this repositorysudo wget -O /et..
Docker: Nexus로 Private Docker Registry 구축기
·
🐳Docker
Private Docker registry 를 만들거나 사내 Docker 저장소 만들 목적📦 환경우분투 22.04 — Server 버전.도커 설치.📌 도커 컨테이너로 Nexus 컨테이너 실행docker run -d --name nexus \-p 8081:8081 -p 8082:8082 \-p 8083:8083 -p 5000:5000 \-v nexus-data:/nexus-data \sonatype/nexus3Nexus 웹 페이지는 http://서버IP:8081 로 접속. 최초, 어드민 계정으로 로그인id: adminpwd: cat /nexus-data/admin.password 로 명령어 쳤을 때 나오는 명렁어.로그인 후, 개인적인 비밀번호로 바꿀 수 있다.✅ Nexus 에서 docker hosted..
MongoDB: MongoDB에서 Oplog 사이즈 확인하는 법
·
📊DB/MongoDB
MongoDB에서 Oplog 사이즈 확인하는 법MongoDB의 oplog(Operation Log, 작업 로그)는 MongoDB 복제(replication)에서 사용되는 특별한 컬렉션으로, 변경 사항을 기록하는 역할.📦 oplog란?• oplog(rs.oplog)는 MongoDB 복제 세트(replica set)에서 Primary 노드의 데이터 변경 사항을 기록하는 컬렉션입니다.• Secondary 노드는 Primary의 oplog를 읽고 동일한 작업을 수행하여 데이터를 동기화함.• 컬렉션 이름: local.oplog.rsCapped Collection(고정 크기 컬렉션)으로 동작하며, 일정 크기가 차면 가장 오래된 데이터부터 삭제!📦 oplog의 동작 방식1. Primary 노드에서 변경 발생• i..
MongoDB: MongoDB 설치한 OS 에서 “Too many open files” 에러 발생 시 해결 가이드
·
📊DB/MongoDB
MongoDB 설치한 OS 에서 “Too many open files” 에러 발생 시 해결 가이드Linux 서버(여기선 AWS EC2)를 운영하다보면 어제만해도 잘 돌아가던 서버 어플리케이션이 “Too many open files” 에러를 뱉고 죽는 현상이 발생함.이런 오류가 생기는 이유는 프로세스가 OS에 요청할수 있는 리소스의 개수/양 (여기서는 NOFILE 이라 불리는 최대 Open 가능한 파일 개수)에 Limit가 있고, 프로세스가 그 제한을 넘었기 때문이다.해결방법각 프로세스의 Limit는 그 프로세스가 실행되는 계정의 Limit를 바탕으로 만들어지므로 프로세스의 Limit를 올려준다고 해서 문제가 해결되진 않는다. 계정과 프로세스 모두 변경해 주어야 그 프로세스를 다시 시작했을때에도 같은 문제..
MongoDB: Replica Set Secondary Node 동기화 시간 확인하는 방법
·
📊DB/MongoDB
MongoDB 에서 Replica Set Secondary Node 동기화 시간 확인하는 방법몽고디비 레플리카 셋으로 구축 되어 있을 때 secondary node가 primary node를 어느정도 동기화 하고 있는지, 알아 볼 수 있다.use admindb.auth({...})rs.printSecondaryReplicationInfo()나오는 시간이 Primary Node에 대해 동기화 하는 정도까지의 지연시간이다.
MongoDB: DB 다운 시 재가동 방법
·
📊DB/MongoDB
MongoDB DB 다운 시 재가동 방법mongoDB가 어떤 이유로 인해 DB 프로세스가 다운될 수 있다. 이유는 log를 살펴봐야한다. 보통 /var/log/mongodb/ 쪽에 기록되어 있다. 실제로 root로 접속 후, mongo가 죽었는지 확인해봐야 한다.mongo다시 살리는 code# root 권한으로.mongod --config /etc/mongod.conf만약에 다시 살리지 못하면, 백업 시켜둔 파일을 교체해서 다시 기동해야 한다./var/lib/ 폴더를 봐야 한다.rm -rf mongo # 기존 파일 지우기.mv mongo.203.20240505 mongo # 파일 교체.그 다음, 재기동 해보자# root 권한으로.mongod --config /etc/mongod.conf그럼, 보통 재기동..
MongoDB: wiredTiger engine 파일 찾는 법
·
📊DB/MongoDB
MongoDB 에서 wiredTiger engine 파일 찾는 법찾게 된 이유 : 몽고디비에서 CRUD를 할때 checksum이 match가 되지 않는 오류 발생 => 몽고디비 다운으로 이어졌다.log를 찾아보면, collection-218–4990451227493674325.wt 식의 파일 이름들이 보임.해당 wt파일이 어떤 database의 collection인지 찾아 볼 수 있음.from pymongo import MongoClientconn = MongoClient(host='host', port=port, username='username', password='password')databases = conn.list_database_names()# 몽고디비에서 wt파일 찾는 법.for db_na..