openjdk 설치
sudo apt update
sudo apt install openjdk-21-jdk -y
설치 확인
java -version
openjdk version "21.0.6" 2025-01-21
OpenJDK Runtime Environment (build 21.0.6+7-Ubuntu-122.04.1)
OpenJDK 64-Bit Server VM (build 21.0.6+7-Ubuntu-122.04.1, mixed mode, sharing)
패키지 키 추가
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
--2025-03-05 18:09:33-- https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
Resolving pkg.jenkins.io (pkg.jenkins.io)... 151.101.2.133, 151.101.66.133, 151.101.130.133, ...
Connecting to pkg.jenkins.io (pkg.jenkins.io)|151.101.2.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3175 (3.1K) [application/pgp-keys]
Saving to: ‘/usr/share/keyrings/jenkins-keyring.asc’
/usr/share/keyrings/jenkins-k 100%[==============================================>] 3.10K --.-KB/s in 0s
2025-03-05 18:09:34 (12.2 MB/s) - ‘/usr/share/keyrings/jenkins-keyring.asc’ saved [3175/3175]
저장소 추가
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
설치
sudo apt update
sudo apt install jenkins -y
sudo vim /lib/systemd/system/jenkins.service
# Port to listen on for HTTP requests. Set to -1 to disable.
# To be able to listen on privileged ports (port numbers less than 1024),
# add the CAP_NET_BIND_SERVICE capability to the AmbientCapabilities
# directive below.
Environment="JENKINS_PORT=9000"
sudo systemctl daemon-reload
sudo ufw status
sudo ufw allow 9000/tcp
sudo ufw reload
서비스 실행
sudo systemctl status jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
초기 비밀번호 확인
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
c0218791fe604f7f8bbf087b4eb7bdd7
대시보드 접속
Dashboard → Jenkins 관리 → System
Jenkins URL 확인 후 ip 변경

Jenkins가 systemd의 journal logging 방식을 사용하도록 설정되어 있음
로그 출력
sudo journalctl -u jenkins --no-pager --lines=50
/run/log/journal//var/log/journal/로그가 /var/log/jenkins/jenkins.log 같은 파일로 남지 않는 이유
journalctl 명령어를 사용해야 함만약 /var/log/journal/ 디렉토리가 없거나, 휘발성 저장소(/run/log/journal/)만 사용 중이라면 디스크 기반 로그를 활성화할 수 있음
sudo mkdir -p /var/log/journal
sudo systemctl restart systemd-journald
journalctl --disk-usage
Archived and active journals take up X MB.
(디스크 기반으로 저장되고 있다면 이렇게 표시됨)
journald 자체적으로 특정 서비스의 로그를 일반 파일로 저장하는 기능은 없지만, journalctl을 이용해 파일로 변환할 수 있음
sudo journalctl -u jenkins -f >> /var/log/jenkins/jenkins.log &
f 옵션은 실시간 로그 스트리밍& 를 붙이면 백그라운드에서 실행됨Jenkins 로그를 일정 시간마다 파일로 저장하고 싶다면, cron을 활용할 수도 있음
sudo crontab -e
그리고 아래 줄 추가 (매 5분마다 로그 저장)
*/5 * * * * journalctl -u jenkins --no-pager > /var/log/jenkins/jenkins.log