반응형
Ubuntu 18.04 에 apt 로 설치된 Jenkins 를 Ubuntu 22.04 새 서버로 이전할 필요가 생겼다. (서버 보안을 위해 OS 업데이트)
해당 문서는 빌드들을 다 새로 정의하기엔 힘들기 때문에 세팅을 그대로 옮길 필요가 있어 마이그레이션 하는 방법을 기록한다.
더보기
과거 문서(Ubuntu에 Jenkins 설치하기 w/ apt) : https://blog.ppuing.me/86
1단계: 기존 서버 데이터 백업
# 1. 젠킨스 서비스 중단
sudo systemctl stop jenkins
# 2. 젠킨스 홈 디렉토리로 이동 (기본값: /var/lib/jenkins)
cd /var/lib/jenkins
# 3. 전체 데이터 압축 (설정, 잡 히스토리, 플러그인 등 포함)
# --exclude를 사용해 캐시나 로그 등 불필요한 파일은 제외하면 용량이 줄어듭니다.
sudo tar -cvzf ~/jenkins_backup.tar.gz .
2단계: 신규 서버 환경 설정
Docker와 Docker Compose 를 설치한다.
# 1. 도커 설치
sudo apt update
sudo apt install docker.io -y
sudo apt install docker-compose-v2 -y
sudo systemctl enable --now docker
# 2. 현재 사용자를 docker 그룹에 추가 (로그아웃 후 재접속 필요)
sudo usermod -aG docker $USER
3단계: 데이터 복사 및 권한 설정
# 1. 기존 서버에서 새 서버로 백업 파일 전송 (새 서버에서 실행)
scp user@구서버_IP:~/jenkins_backup.tar.gz ~/
# 2. 젠킨스 데이터를 저장할 디렉토리 생성
mkdir ~/jenkins_home
# 3. 압축 해제
tar -xvzf ~/jenkins_backup.tar.gz -C ~/jenkins_home
# 4. 중요: 권한 변경
# 도커 내부의 젠킨스 사용자는 기본적으로 UID 1000을 사용합니다.
# 호스트의 디렉토리 권한을 1000으로 맞춰줘야 도커가 파일을 읽고 쓸 수 있습니다.
sudo chown -R 1000:1000 ~/jenkins_home
4단계: Docker Compose 로 Jenkins 실행
관리 편의성을 위해 docker-compose.yml 파일을 작성한다.
cd ~
vi docker-compose.yml
아래 내용을 작성
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts # 최신 LTS 버전 사용
container_name: jenkins
restart: unless-stopped
ports:
- "8080:8080"
- "50000:50000"
volumes:
- ./jenkins_home:/var/jenkins_home
environment:
- TZ=Asia/Seoul
실행:
docker compose up -d
5단계 (선택) : 미래의 버전 관리 및 업데이트 방법
1. 이미지 다운로드: docker compose pull jenkins
2. 재시작: docker compose up -d
3. 이전 버전 복구: 문제가 생기면 image: jenkins/jenkins-{이전버전태그} 로 바꾸고 docker compose up -d 재실행
6단계 (선택): 다른 서버로의 마이그레이션
1. 기존 서버에서 데이터 백업
# 1. 젠킨스 컨테이너 정지 (데이터 안전 보장)
docker compose down
# 2. 설정 파일과 데이터를 압축
# jenkins_home 폴더와 docker-compose.yml 파일을 함께 압축
tar -cvzf jenkins_migration.tar.gz ./jenkins_home docker-compose.yml
2. 신규 서버로 전송 및 복구
# 1. 파일 전송 (새 서버에서 실행)
scp user@구서버_IP:~/jenkins_migration.tar.gz ~/
# 2. 압축 해제
tar -xvzf jenkins_migration.tar.gz
# 3. 권한 확인 (도커용 UID 1000 권한 부여)
sudo chown -R 1000:1000 ./jenkins_home
# 4. 바로 실행
docker compose up -d반응형
'개발 이야기 > Generals' 카테고리의 다른 글
| Jenkins 빌드별 권한 분리하기 (2.528.3 버전 기준) (0) | 2026.01.13 |
|---|---|
| [Git] git push 할 때 RPC failed; HTTP 500 curl 22 The requested URL returned 에러 발생 (0) | 2025.06.16 |
| Kafka 클러스터에서 broker 가 죽었을 때 topic 생성 타임아웃 해결하기 (3) | 2024.10.25 |
| Elasticsearch Too many dynamic script compilations within, ~ 에러 해결하기 (0) | 2024.03.28 |
| Slack bot 세팅하기 (0) | 2023.07.18 |
댓글