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> |
| + | --> |
| + | ``` |
