사용자 도구

사이트 도구


ci:jenkins

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ci:jenkins [2020/09/04 09:24]
kwon37xi [설치 실행]
ci:jenkins [2022/11/17 11:44] (현재)
kwon37xi [Slave 전략]
줄 6: 줄 6:
   * [[ci:jenkins:groovy_hook|Jenkins Groovy Hook]]   * [[ci:jenkins:groovy_hook|Jenkins Groovy Hook]]
   * [[ci:jenkins:jcasc|Jenkins Configuration As Code - JCasC]]   * [[ci:jenkins:jcasc|Jenkins Configuration As Code - JCasC]]
 +  * [[ci:jenkins:agent|Jenkins Agent ( slave )]]
 +  * [[ci:jenkins:cli|Jenkins CLI]]
  
-====== Slave 전략 ======+===== Slave 전략 =====
   * Jenkins Master 를 바로 이용해서 Batch Job scheduling 등을 할 경우, Master 에서 batch job을 곧바로 실행하면 일부 Job 이 시스템 리소스를 다 잡아먹어서 Master 의 스케줄링 작업을 방해할 수도 있다.   * Jenkins Master 를 바로 이용해서 Batch Job scheduling 등을 할 경우, Master 에서 batch job을 곧바로 실행하면 일부 Job 이 시스템 리소스를 다 잡아먹어서 Master 의 스케줄링 작업을 방해할 수도 있다.
-  * 따라서 중요 Batch Job 스케줄링을 할 경우에는 Master 에서는 스케줄링만 하고 모든 Job 을 Slave에서만 실행하게 한다.+  * 따라서 중요 Batch Job 스케줄링을 할 경우에는 **Master 에서는 스케줄링만 하고 모든 Job 을 Slave Agent 에서만 실행**하게 한다.
  
 ===== 설치 실행 ===== ===== 설치 실행 =====
줄 24: 줄 26:
     * ''%%--%%prefix=$PREFIX'' : context path 처럼 URL 앞에 붙는 값     * ''%%--%%prefix=$PREFIX'' : context path 처럼 URL 앞에 붙는 값
     * ''-XX:PermSize=512M -XX:MaxPermSize=2048M -Xmn128M -Xms1024M -Xmx2048M''     * ''-XX:PermSize=512M -XX:MaxPermSize=2048M -Xmn128M -Xms1024M -Xmx2048M''
 +  * [[https://www.popularowl.com/jenkins/automating-jenkins-install-docker-terraform/|Automating Jenkins install and configuration with Docker and Terraform - Popularowl]]
 +    * admin 생성을 완전 자동으로 하는 방법
 +    * plugin 자동 설치
  
 +===== 설치 Systemd =====
 +  * 2022년 경부터 Linux 용 Jenkins 패키지가 [[linux:systemd|systemd]] 를 기준으로 패키징됐으며, systemd 지원 리눅스에서 동일한 방식의 설치를 지원하게 됨.
 +  * [[https://www.youtube.com/watch?v=VD3dB5wGtJI|How to Install Jenkins on Ubuntu 22.04 - YouTube]]
 +  * [[https://www.youtube.com/watch?v=pwR9TPW2oG4|Managing the Jenkins systemd Service on Ubuntu 20.04 - YouTube]]
 +  * [[https://www.youtube.com/watch?v=MkokjTQ2ngc|Managing the Jenkins systemd Service on CentOS 7.9 - YouTube]]
 +  * [[https://www.youtube.com/watch?v=LmgzvD7xvKU|How to Install Jenkins on AlmaLinux 8 - YouTube]] : [[linux:alma_linux|Alma Linux]]에서 [[linux:systemd|systemd]]로 설치하는 과정
 ===== Ubuntu/Debian 패키지 설치 Jenkins 실행 사용자 변경 ===== ===== Ubuntu/Debian 패키지 설치 Jenkins 실행 사용자 변경 =====
 +  * **Deprecated** ''systemd'' 관련 항목 확인
   * [[http://blog.manula.org/2013/03/running-jenkins-under-different-user-in.html|How to run Jenkins under a different user in Linux [Redhat] | Manula's Blog]]   * [[http://blog.manula.org/2013/03/running-jenkins-under-different-user-in.html|How to run Jenkins under a different user in Linux [Redhat] | Manula's Blog]]
   * ''/etc/default/jenkins'' 에서 아래 항목을 원하는 계정으로 변경   * ''/etc/default/jenkins'' 에서 아래 항목을 원하는 계정으로 변경
줄 31: 줄 43:
 JENKINS_USER=<USERNAME> JENKINS_USER=<USERNAME>
 JENKINS_GROUP=<GROUP> JENKINS_GROUP=<GROUP>
 +
 +# 다음 명령으로 한 번에 변경
 +sudo sed -i.bak -e "s/JENKINS_USER=\$NAME/JENKINS_USER=$USER/g" \
 +    -e "s/JENKINS_GROUP=\$NAME/JENKINS_GROUP=$USER/g" \
 +    -e "s/HTTP_PORT=8080/HTTP_PORT=7777/g" \
 +    /etc/default/jenkins
 </code> </code>
   * 재시작   * 재시작
줄 48: 줄 66:
  
 ===== Jenkins on Redhat 계열 Linux ===== ===== Jenkins on Redhat 계열 Linux =====
 +  * **Deprecated** ''systemd'' 관련 항목 확인
   * [[https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions|Installing Jenkins on Red Hat distributions - Jenkins - Jenkins Wiki]]   * [[https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions|Installing Jenkins on Red Hat distributions - Jenkins - Jenkins Wiki]]
 +  * [[https://www.jenkins.io/doc/tutorials/tutorial-for-installing-jenkins-on-AWS/|Jenkins on AWS]]
   * ''/etc/sysconfig/jenkins'' 파일에서 JVM 옵션 등 변경 가능   * ''/etc/sysconfig/jenkins'' 파일에서 JVM 옵션 등 변경 가능
   * ''/var/log/jenkins/jenkins.log'' 에 로그 남음   * ''/var/log/jenkins/jenkins.log'' 에 로그 남음
   * ''UnknownHostException'' 발생시에 [[https://support.cloudbees.com/hc/en-us/articles/218156717-Jenkins-is-Experiencing-UnknownHostException|Jenkins is Experiencing UnknownHostException – CloudBees Support]]   * ''UnknownHostException'' 발생시에 [[https://support.cloudbees.com/hc/en-us/articles/218156717-Jenkins-is-Experiencing-UnknownHostException|Jenkins is Experiencing UnknownHostException – CloudBees Support]]
 +  * [[:docker|Docker]] 사용시 ''jenkins'' 사용자를 ''docker'' group 에 추가해야 한다. 
 +<code sh> 
 +sudo usermod -aG docker jenkins 
 +</code>
 ===== Jenkins Docker ===== ===== Jenkins Docker =====
-  * [[https://hub.docker.com/_/jenkins|jenkins official docker image]]+  * [[https://hub.docker.com/r/jenkins/jenkins|jenkins official docker image]]
   * [[https://github.com/jenkinsci/docker|Jenkins Official Docker source]]   * [[https://github.com/jenkinsci/docker|Jenkins Official Docker source]]
 +  * [[https://github.com/jenkinsci/docker/blob/master/README.md|docker/README.md at master · jenkinsci/docker]]
   * [[https://mydeveloperplanet.com/2019/01/30/setup-jenkins-ci-in-30-minutes/|Setup Jenkins CI in 30 Minutes – My Developer Planet]]   * [[https://mydeveloperplanet.com/2019/01/30/setup-jenkins-ci-in-30-minutes/|Setup Jenkins CI in 30 Minutes – My Developer Planet]]
 +  * [[https://youtu.be/QNZNfvrFBMo|How to Run Jenkins on Docker]] : Docker 로 Jenkins를 띄우고, 업그레이드 하는 방법 설명.
 +    * [[https://gist.github.com/darinpope/39e4718919d22bc22f470ad3e94f8df1|/Gist for video]]
 +  * Docker를 사용하는 것이 유지보수성, 보안성등이 더 좋다.
   * 특별한 이유가 없다면 ''latest''말고 ''lts'' 버전으로 설치할 것. 혹은 버전 명시. ''TZ=Asia/Seoul''도 명시해야 시간값이 맞다.   * 특별한 이유가 없다면 ''latest''말고 ''lts'' 버전으로 설치할 것. 혹은 버전 명시. ''TZ=Asia/Seoul''도 명시해야 시간값이 맞다.
 <code sh> <code sh>
줄 64: 줄 91:
     -e JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com \     -e JAVA_OPTS=-Dhudson.footerURL=http://mycompany.com \
     jenkins/jenkins:lts     jenkins/jenkins:lts
 +
 </code> </code>
   * plugin 자동설치도 가능하다. 이 경우 Docker Image를 별도 생성해야함. Docker 내부에서 ''/usr/local/bin/install-plugins.sh'' 스크립트를 호출해서 수행한다. [[https://github.com/jenkinsci/docker|Jenkins Official Docker source]] README 참조   * plugin 자동설치도 가능하다. 이 경우 Docker Image를 별도 생성해야함. Docker 내부에서 ''/usr/local/bin/install-plugins.sh'' 스크립트를 호출해서 수행한다. [[https://github.com/jenkinsci/docker|Jenkins Official Docker source]] README 참조
줄 179: 줄 207:
 find . -name log -newerct yyyy-MM-dd ! -newerct yyyy-MM-dd -exec grep -Hni '검색어' {} \; find . -name log -newerct yyyy-MM-dd ! -newerct yyyy-MM-dd -exec grep -Hni '검색어' {} \;
 </code> </code>
 +
 +=== 환경변수 등 읽기 ===
 +  * [[https://wiki.jenkins.io/display/JENKINS/Building+a+software+project|Building a software project - Jenkins - Jenkins Wiki]]
  
 ===== External Job ===== ===== External Job =====
줄 193: 줄 224:
 JENKINS_HOME=http://my-jenkins/ java -jar jenkins-core-*.jar nightly-backup ./backup.sh --nightly /home JENKINS_HOME=http://my-jenkins/ java -jar jenkins-core-*.jar nightly-backup ./backup.sh --nightly /home
 </code> </code>
 +
 +===== Upgrade =====
 +  * [[https://www.youtube.com/watch?v=fEO7dOxHvgU&t=71s&ab_channel=CloudBeesTV|How to Safely Upgrade Jenkins to a New Version - YouTube]]
 +  * [[https://plugins.jenkins.io/support-core/|Support Core | Jenkins plugin]] 을 통해 현재 상태를 그대로 docker File 로 뜬 상태에서 업그레이드를 수행해 보고서 잘 되면 새로운 상태를 기준으로 docker 뜨기
  
 ===== 기타 ===== ===== 기타 =====
줄 200: 줄 235:
   * [[https://wiki.jenkins.io/display/JENKINS/Administering+Jenkins|Administering Jenkins - Jenkins - Jenkins Wiki]]   * [[https://wiki.jenkins.io/display/JENKINS/Administering+Jenkins|Administering Jenkins - Jenkins - Jenkins Wiki]]
   * [[https://github.com/jenkinsci/jenkins-scripts|jenkins-scripts]]   * [[https://github.com/jenkinsci/jenkins-scripts|jenkins-scripts]]
 +  * [[https://support.cloudbees.com/hc/en-us/articles/222446987-Prepare-Jenkins-for-Support|Prepare Jenkins for Support – CloudBees Support]] : Jenkins 에 접합한 JVM 설정등을 소개함.
 +
 +
ci/jenkins.1599179064.txt.gz · 마지막으로 수정됨: 2020/09/04 09:24 저자 kwon37xi