Information Security Study
젠킨스 파이프라인에서 .sh 실행하기 본문
젠킨스 파이프라인에서 .sh 실행하기
젠킨스 파이프라인에서 shell 스크립트를 작성해서 실행하면 구문이 복잡해지기 때문에
github에 shell 스크립트를 작성해 받아와서 실행하는 방식을 사용했다.
먼저 파이프라인 타입으로 아이템을 생성했다.
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
}
stage('Test') {
steps {
echo 'Testing...'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
}
}
}
}
스크립트에는 위와 같은 형식으로 작성할 것이다.
이제 인스턴스 자원을 주기적으로 확인하고 로깅하는 셸 스크립트를 작성할 것이다.
cpu, 메모리, 디스크 사용량을 로깅하는 셸 스크립트이다.
이 스크립트는 /var/log/resource_usage.log 파일에 주기적으로 자원 사용량을 기록한다.
저장한 뒤 실행 권한을 부여했다.
젠킨스는 보통 jenkins 이름으로 스크립트 명령을 내리기 때문에 ubuntu 계정이 갖는 요소에는 쓰기 작업이 불가능한 경우가 있다.
그래서 jenkins로 sudo 명령을 편하게 쓸 수 있도록 visudo에서 권한을 부여했다.
jenkins 사용자에게 비밀번호 없이 sudo 명령을 부여하는 구문
pipeline {
agent any
stages {
stage('Clone github'){
steps {
git 'https://github.com/계정명/레포지토리명'
sh 'ls'
sh 'chmod +x resource_usage.sh'
sh 'chmod +x build.sh'
sh 'chmod +x test.sh'
sh 'chmod +x deploy.sh'
}
}
stage('Build') {
steps {
echo 'Building...'
sh './build.sh'
}
}
stage('Test') {
steps {
echo 'Testing...'
sh './test.sh'
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
sh './deploy.sh'
}
}
stage('Logging'){
steps {
echo 'Logging...'
// jenkins 계정으로는 /home/ubuntu 하위 경로에 저장 불가이므로 sudo 필요
sh 'sudo ./resource_usage.sh'
echo '------------- process --------------'
// 조회시에도 jenkins 계정으로는 /home/ubuntu 하위 경로에 호출 불가이므로 sudo 필요
sh 'sudo cat /home/ubuntu/log_test/resource_usage.log'
}
}
}
}
깃허브 레포지토리에서 sh 파일을 받아서 실행한 뒤
로그 내역을 출력하는 파이프라인 스크립트이다.
빌드를 누르면 인스턴스의 /home/ubuntu/log_test/resource_usage.log 파일에 로깅이 되고
기록된 내역이 출력된다.
직접 powershell에서 cat으로 출력해도 동일한 결과가 출력된다.
젠킨스에서 console output으로 확인한 결과
'네트워크 캠퍼스 > NHN클라우드-Jenkins' 카테고리의 다른 글
로그로테이트하기 (0) | 2024.07.23 |
---|---|
크론탭으로 로깅 스크립트 실행하기 (0) | 2024.07.23 |
240711 ~ 12 파이프라인으로 배포 고도화하기, 스크립트로 CI/CD 실습하기(롤백 트러블슈팅) (0) | 2024.07.12 |
240710 젠킨스 파이프라인 사용하기 (0) | 2024.07.10 |
240709 도커 이미지 배포로 전환하기 (0) | 2024.07.09 |