Jenkins

Jenkins: Jenkins

설치 및 설정

war 파일로 다운로드 받는다.

mkdir jenkins
cd jenkins
wget https://get.jenkins.io/war-stable/2.492.3/jenkins.war
mkdir home logs work

start.sh

#!/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 설정

[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

최대한 언급된 항목만 설정한다.

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

    <!-- 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