Blame

06d2ef 강세보 2026-01-13 10:05:28 1
# Jenkins
2
3
Jenkins: [Jenkins](https://www.jenkins.io/)
4
5
# 설치 및 설정
6
war 파일로 다운로드 받는다.
7
```bash
8
mkdir jenkins
9
cd jenkins
10
wget https://get.jenkins.io/war-stable/2.492.3/jenkins.war
11
mkdir home logs work
12
```
13
start.sh
14
```bash
15
#!/bin/bash
16
#!/bin/bash
17
JAVA_HOME=$HOME/devops/jvm/jdk-21.0.9+10
18
JENKINS_DATA=/mnt/LaCie/svcrnd/data/jenkins
19
20
JENKINS_ROOT=$HOME/devops/jenkins
21
JENKINS_WAR=$JENKINS_ROOT/dist/jenkins.war
22
JENKINS_HOME=$JENKINS_DATA
23
JENKINS_LOG=$JENKINS_ROOT/logs/jenkins.log
24
JENKINS_PIDFILE=$JENKINS_ROOT/logs/jenkins.pid
25
JENKINS_WEBROOT=$JENKINS_ROOT/work
26
27
case $1 in
28
start)
29
$JAVA_HOME/bin/java -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR --enable-future-java --logfile=$JENKINS_LOG --webroot=$JENKINS_WEBROOT --httpPort=6501 --prefix=/jenkins &
30
echo $! > $JENKINS_PIDFILE
31
;;
32
stop)
33
if [ -f $JENKINS_PIDFILE ]; then
34
kill $(cat $JENKINS_PIDFILE)
35
rm $JENKINS_PIDFILE
36
else
37
ps -ef | grep jenkins | grep -v grep | awk '{print $2}' | xargs kill
38
fi
39
;;
40
*)
41
echo "Usage: $0 {start|stop}"
42
exit 1
43
;;
44
esac
45
46
exit 0
47
```
48
49
supervisord 설정
50
```ini
51
[program:jenkins]
52
environment=HOME="/home/aicsgw"
53
command=java -DJENKINS_HOME=/home/aicsgw/servers/jenkins/home -jar /home/aicsgw/servers/jenkins/jenkins.war --logfile=/home/aicsgw/servers/jenkins/logs/jenkins.log --webroot=/home/aicsgw/servers/jenkins/work --httpPort=8084 --prefix=/ci
54
directory=/home/aicsgw/servers/jenkins/
55
autostart=true
56
stopasgroup=true
57
;startsecs=5
58
;stopwaitsecs=10
59
;autorestart=true
60
;stopsignal=KILL
61
stdout_logfile=/home/aicsgw/servers/supervisor/logs/jenkins_out.log
62
stderr_logfile=/home/aicsgw/servers/supervisor/logs/jenkins_err.log
63
stdout_logfile_backups=3
64
stderr_logfile_backups=3
65
user=aicsgw
66
priority=21
67
```
68
69
# Keycloak 연동
70
[Keycloak Authentication | Jenkins plugin](https://plugins.jenkins.io/keycloak/)
71
72
최대한 언급된 항목만 설정한다.
73
74
# maven 설정 수정
75
사내 maven repository 접근 시 오류 발생
76
```
77
[ERROR] Failed to read artifact descriptor for com.uangel.aica:aipbmsg:jar:0.0.16
78
[ERROR] Caused by: The following artifacts could not be resolved: com.uangel.aica:aipbmsg:pom:0.0.16 (absent): Could not transfer artifact com.uangel.aica:aipbmsg:pom:0.0.16 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [maven-public (http://192.168.7.33:8082/repository/maven-public/, default, releases+snapshots)]
79
```
80
maven 설정 수정
81
/home/aicsgw/servers/jenkins/home/tools/hudson.tasks.Maven_MavenInstallation/maven/conf
82
```xml
83
<!-- disable http mirror blocker
84
<mirror>
85
<id>maven-default-http-blocker</id>
86
<mirrorOf>external:http:*</mirrorOf>
87
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
88
<url>http://0.0.0.0/</url>
89
<blocked>true</blocked>
90
</mirror>
91
-->
92
```