Jenkins Yedekleme ve Geri Yükleme
Jenkins yapılandırmasını, job'larını ve plugin'lerini yedekleyen ve geri yükleyen script.
Yayınlanma: 06.05.2024
Detaylı Bilgi
Bu script, Jenkins CI/CD sunucusunun yapılandırmasını, job'larını ve plugin'lerini yedekler ve geri yükler. Jenkins verilerinin güvenliğini sağlar.
Script Ne İşe Yarar?
Bu script, Jenkins yedekleme ve geri yükleme işlemlerini yapar:
- Jenkins home dizinini yedekler
- Job yapılandırmalarını yedekler
- Plugin'leri yedekler
- Yapılandırma dosyalarını yedekler
- Yedekten geri yükleme yapar
Neden Kullanmalısınız?
Jenkins yedekleme, CI/CD süreçlerinin güvenliği için kritiktir:
- Disaster Recovery: Sunucu çökmesi durumunda hızlı geri yükleme
- Yapılandırma Yönetimi: Yapılandırma değişikliklerini yedekleyin
- Migration: Jenkins'i başka sunucuya taşıyın
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Yedekleme
chmod +x jenkins_backup.sh
./jenkins_backup.sh backup
2. Geri Yükleme
./jenkins_backup.sh restore /backup/jenkins/jenkins_backup_20240505_120000.tar.gz Gereksinimler
Gereksinimler
- Jenkins: Jenkins kurulu olmalı
- Root Yetkisi: Jenkins servisini durdurmak için
Kullanım Senaryoları
Kullanım Senaryoları
1. Düzenli Yedekleme
Jenkins yapılandırmasını düzenli olarak yedekleyin.
2. Disaster Recovery
Sunucu çökmesi durumunda hızlıca geri yükleme yapın.
Örnekler
Kullanım Örnekleri
Örnek 1: Yedekleme
./jenkins_backup.sh backup
Örnek 2: Geri Yükleme
./jenkins_backup.sh restore /backup/jenkins/jenkins_backup_20240505_120000.tar.gz Kod
#!/bin/bash
# Jenkins Backup and Restore Script
JENKINS_HOME="${JENKINS_HOME:-/var/lib/jenkins}"
BACKUP_DIR="/backup/jenkins"
ACTION="${1:-backup}"
if [ ! -d "$JENKINS_HOME" ]; then
echo "Error: Jenkins home directory not found: $JENKINS_HOME"
exit 1
fi
mkdir -p "$BACKUP_DIR"
if [ "$ACTION" = "backup" ]; then
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/jenkins_backup_${DATE}.tar.gz"
echo "Backing up Jenkins..."
echo "Jenkins Home: $JENKINS_HOME"
echo "Backup File: $BACKUP_FILE"
echo ""
tar -czf "$BACKUP_FILE" -C "$(dirname "$JENKINS_HOME")" "$(basename "$JENKINS_HOME")"
if [ $? -eq 0 ]; then
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "✓ Backup completed: $BACKUP_FILE ($SIZE)"
else
echo "✗ Backup failed!"
exit 1
fi
elif [ "$ACTION" = "restore" ]; then
if [ -z "$2" ]; then
echo "Usage: $0 restore <backup_file>"
exit 1
fi
BACKUP_FILE="$2"
if [ ! -f "$BACKUP_FILE" ]; then
echo "Error: Backup file not found: $BACKUP_FILE"
exit 1
fi
echo "Restoring Jenkins from backup..."
echo "Backup File: $BACKUP_FILE"
echo "Jenkins Home: $JENKINS_HOME"
echo ""
echo "⚠️ WARNING: This will overwrite current Jenkins configuration!"
read -p "Continue? (y/n): " CONFIRM
if [ "$CONFIRM" != "y" ]; then
echo "Restore cancelled"
exit 0
fi
systemctl stop jenkins
if [ -d "$JENKINS_HOME" ]; then
mv "$JENKINS_HOME" "${JENKINS_HOME}_old_$(date +%Y%m%d_%H%M%S)"
fi
tar -xzf "$BACKUP_FILE" -C "$(dirname "$JENKINS_HOME")"
chown -R jenkins:jenkins "$JENKINS_HOME"
systemctl start jenkins
echo "✓ Restore completed!"
else
echo "Usage: $0 [backup|restore] [backup_file]"
exit 1
fi
Kullanım
chmod +x jenkins_backup.sh
./jenkins_backup.sh backup
./jenkins_backup.sh restore <backup_file>
Sorun Giderme
Sorun Giderme
Problem: "Jenkins home directory not found"
Çözüm: JENKINS_HOME değişkenini ayarlayın:
export JENKINS_HOME=/path/to/jenkins
./jenkins_backup.sh backup