Commit 06d2ef

2026-01-13 10:05:28 강세보: Add Jenkins
/dev/null .. notes/tips/jenkins.md
@@ 0,0 1,92 @@
+ # Jenkins
+
+ Jenkins: [Jenkins](https://www.jenkins.io/)
+
+ # 설치 및 설정
+ war 파일로 다운로드 받는다.
+ ```bash
+ mkdir jenkins
+ cd jenkins
+ wget https://get.jenkins.io/war-stable/2.492.3/jenkins.war
+ mkdir home logs work
+ ```
+ start.sh
+ ```bash
+ #!/bin/bash
+ #!/bin/bash
+ JAVA_HOME=$HOME/devops/jvm/jdk-21.0.9+10
+ JENKINS_DATA=/mnt/LaCie/svcrnd/data/jenkins
+
+ JENKINS_ROOT=$HOME/devops/jenkins
+ JENKINS_WAR=$JENKINS_ROOT/dist/jenkins.war
+ JENKINS_HOME=$JENKINS_DATA
+ JENKINS_LOG=$JENKINS_ROOT/logs/jenkins.log
+ JENKINS_PIDFILE=$JENKINS_ROOT/logs/jenkins.pid
+ JENKINS_WEBROOT=$JENKINS_ROOT/work
+
+ case $1 in
+ start)
+ $JAVA_HOME/bin/java -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR --enable-future-java --logfile=$JENKINS_LOG --webroot=$JENKINS_WEBROOT --httpPort=6501 --prefix=/jenkins &
+ echo $! > $JENKINS_PIDFILE
+ ;;
+ stop)
+ if [ -f $JENKINS_PIDFILE ]; then
+ kill $(cat $JENKINS_PIDFILE)
+ rm $JENKINS_PIDFILE
+ else
+ ps -ef | grep jenkins | grep -v grep | awk '{print $2}' | xargs kill
+ fi
+ ;;
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 1
+ ;;
+ esac
+
+ exit 0
+ ```
+
+ supervisord 설정
+ ```ini
+ [program:jenkins]
+ environment=HOME="/home/aicsgw"
+ 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
+ directory=/home/aicsgw/servers/jenkins/
+ autostart=true
+ stopasgroup=true
+ ;startsecs=5
+ ;stopwaitsecs=10
+ ;autorestart=true
+ ;stopsignal=KILL
+ stdout_logfile=/home/aicsgw/servers/supervisor/logs/jenkins_out.log
+ stderr_logfile=/home/aicsgw/servers/supervisor/logs/jenkins_err.log
+ stdout_logfile_backups=3
+ stderr_logfile_backups=3
+ user=aicsgw
+ priority=21
+ ```
+
+ # Keycloak 연동
+ [Keycloak Authentication | Jenkins plugin](https://plugins.jenkins.io/keycloak/)
+
+ 최대한 언급된 항목만 설정한다.
+
+ # maven 설정 수정
+ 사내 maven repository 접근 시 오류 발생
+ ```
+ [ERROR] Failed to read artifact descriptor for com.uangel.aica:aipbmsg:jar:0.0.16
+ [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)]
+ ```
+ maven 설정 수정
+ /home/aicsgw/servers/jenkins/home/tools/hudson.tasks.Maven_MavenInstallation/maven/conf
+ ```xml
+ <!-- disable http mirror blocker
+ <mirror>
+ <id>maven-default-http-blocker</id>
+ <mirrorOf>external:http:*</mirrorOf>
+ <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
+ <url>http://0.0.0.0/</url>
+ <blocked>true</blocked>
+ </mirror>
+ -->
+ ```
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9