문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
ci:jenkins [2019/10/01 15:24] kwon37xi |
ci:jenkins [2022/06/09 22:35] kwon37xi [설치 Systemd] |
||
---|---|---|---|
줄 2: | 줄 2: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | * [[ci: | + | |
+ | | ||
+ | * [[ci: | ||
+ | * [[ci: | ||
+ | * [[ci: | ||
+ | * [[ci: | ||
+ | ===== Slave 전략 ===== | ||
+ | * Jenkins Master 를 바로 이용해서 Batch Job scheduling 등을 할 경우, Master 에서 batch job을 곧바로 실행하면 일부 Job 이 시스템 리소스를 다 잡아먹어서 Master 의 스케줄링 작업을 방해할 수도 있다. | ||
+ | * 따라서 중요 Batch Job 스케줄링을 할 경우에는 Master 에서는 스케줄링만 하고 모든 Job 을 Slave에서만 실행하게 한다. | ||
- | ===== 실행 ===== | + | ===== 설치 |
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
* '' | * '' | ||
줄 15: | 줄 24: | ||
* 주요 옵션 | * 주요 옵션 | ||
* '' | * '' | ||
- | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * [[https:// | ||
+ | * admin 생성을 완전 자동으로 하는 방법 | ||
+ | * plugin 자동 설치 | ||
+ | |||
+ | ===== 설치 Systemd ===== | ||
+ | * 2022년 경부터 Linux 용 Jenkins 패키지가 [[linux: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | ===== Ubuntu/ | ||
+ | * **Deprecated** '' | ||
+ | * [[http:// | ||
+ | * ''/ | ||
+ | < | ||
+ | JENKINS_USER=< | ||
+ | JENKINS_GROUP=< | ||
+ | |||
+ | # 다음 명령으로 한 번에 변경 | ||
+ | sudo sed -i.bak -e " | ||
+ | -e " | ||
+ | -e " | ||
+ | / | ||
+ | </ | ||
+ | * 재시작 | ||
+ | <code sh> | ||
+ | # 이미 생성된 디렉토리 권한 변경 | ||
+ | sudo chown -R < | ||
+ | sudo chown -R < | ||
+ | sudo chown -R < | ||
+ | |||
+ | |||
+ | # 재시작 | ||
+ | sudo service jenkins restart | ||
+ | |||
+ | # jenkins 프로세스 확인 | ||
+ | ps -ef | grep jenkins | ||
+ | </ | ||
===== Jenkins on Redhat 계열 Linux ===== | ===== Jenkins on Redhat 계열 Linux ===== | ||
+ | * **Deprecated** '' | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
* ''/ | * ''/ | ||
* ''/ | * ''/ | ||
* '' | * '' | ||
+ | * [[: | ||
+ | <code sh> | ||
+ | sudo usermod -aG docker jenkins | ||
+ | </ | ||
===== Jenkins Docker ===== | ===== Jenkins Docker ===== | ||
- | * [[https:// | + | * [[https:// |
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Docker를 사용하는 것이 유지보수성, | ||
+ | * 특별한 이유가 없다면 '' | ||
<code sh> | <code sh> | ||
docker run --name=mytestjenkins -p 8080:8080 -p 50000:50000 \ | docker run --name=mytestjenkins -p 8080:8080 -p 50000:50000 \ | ||
-v / | -v / | ||
- | --env JAVA_OPTS=-Dhudson.footerURL=http:// | + | -e TZ=Asia/ |
+ | | ||
jenkins/ | jenkins/ | ||
+ | |||
</ | </ | ||
* plugin 자동설치도 가능하다. 이 경우 Docker Image를 별도 생성해야함. Docker 내부에서 ''/ | * plugin 자동설치도 가능하다. 이 경우 Docker Image를 별도 생성해야함. Docker 내부에서 ''/ | ||
줄 54: | 줄 110: | ||
* [[https:// | * [[https:// | ||
- | ==== Job DSL Plugin ==== | ||
- | * [[https:// | ||
==== 인증 ==== | ==== 인증 ==== | ||
줄 117: | 줄 171: | ||
==== Google Login ==== | ==== Google Login ==== | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ==== Build Blocker ==== | ||
+ | * [[https:// | ||
+ | * 다른 Job 이 실행중일 때는 build 를 막게 설정. Job들간 실행이 상호 배타적일 때 사용. | ||
===== JOB ===== | ===== JOB ===== | ||
줄 148: | 줄 206: | ||
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 ' | ||
</ | </ | ||
+ | |||
+ | === 환경변수 등 읽기 === | ||
+ | * [[https:// | ||
===== External Job ===== | ===== External Job ===== | ||
줄 168: | 줄 229: | ||
* SSH Slave Plugin의 경우 '' | * SSH Slave Plugin의 경우 '' | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |