문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
ci:jenkins [2019/07/10 17:29] kwon37xi |
ci:jenkins [2022/11/17 11:44] (현재) kwon37xi [Slave 전략] |
||
---|---|---|---|
줄 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 Agent 에서만 실행**하게 한다. | ||
- | ===== 실행 ===== | + | ===== 설치 |
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
* '' | * '' | ||
줄 15: | 줄 24: | ||
* 주요 옵션 | * 주요 옵션 | ||
* '' | * '' | ||
- | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * [[https:// | ||
+ | * admin 생성을 완전 자동으로 하는 방법 | ||
+ | * plugin 자동 설치 | ||
+ | |||
+ | ===== 설치 Systemd ===== | ||
+ | * 2022년 경부터 Linux 용 Jenkins 패키지가 [[linux: | ||
+ | * [[https:// | ||
+ | * [[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 ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Docker를 사용하는 것이 유지보수성, | ||
+ | * 특별한 이유가 없다면 '' | ||
+ | <code sh> | ||
+ | docker run --name=mytestjenkins -p 8080:8080 -p 50000:50000 \ | ||
+ | -v / | ||
+ | -e TZ=Asia/ | ||
+ | -e JAVA_OPTS=-Dhudson.footerURL=http:// | ||
+ | jenkins/ | ||
+ | |||
+ | </ | ||
+ | * plugin 자동설치도 가능하다. 이 경우 Docker Image를 별도 생성해야함. Docker 내부에서 ''/ | ||
+ | |||
===== 모니터링 ===== | ===== 모니터링 ===== | ||
* 인증 걸려 있을 경우 이거 안됨 : '' | * 인증 걸려 있을 경우 이거 안됨 : '' | ||
줄 40: | 줄 111: | ||
* [[https:// | * [[https:// | ||
- | ==== Job DSL Plugin ==== | ||
- | * [[https:// | ||
==== 인증 ==== | ==== 인증 ==== | ||
줄 103: | 줄 172: | ||
==== Google Login ==== | ==== Google Login ==== | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ==== Build Blocker ==== | ||
+ | * [[https:// | ||
+ | * 다른 Job 이 실행중일 때는 build 를 막게 설정. Job들간 실행이 상호 배타적일 때 사용. | ||
===== JOB ===== | ===== JOB ===== | ||
줄 134: | 줄 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 ' | ||
</ | </ | ||
+ | |||
+ | === 환경변수 등 읽기 === | ||
+ | * [[https:// | ||
===== External Job ===== | ===== External Job ===== | ||
줄 148: | 줄 224: | ||
JENKINS_HOME=http:// | JENKINS_HOME=http:// | ||
</ | </ | ||
+ | |||
+ | ===== Upgrade ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== 기타 ===== | ===== 기타 ===== | ||
줄 154: | 줄 234: | ||
* SSH Slave Plugin의 경우 '' | * SSH Slave Plugin의 경우 '' | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ |