본문 바로가기

IT

젠킨스(jenkins) 1(개요 및 설치)

728x90

젠킨스(Jenkins)란?

모든 언어의 조합과 소스 코드 레포지토리에 대한 지속적인 통합(Continuous integration, CI)과 지속적 배포(continuous delivery, CD) 환경을 구축하기 위한 도구다. 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높일 수 있다.

젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방법이 일반적이었는데, 젠킨스는 서브버전, Git과 같은 버전 관리 시스템과 연동해서 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동하도록 도와주게 되어 편의성이 증가되었다.

이러한 기능을 수행하는 젠킨스는 컴파일 오류를 검출하고, 자동화 테스트를 수행하며, 정적 코드 분석으로 인한 코딩 규약 준수 여부를 체크하고 프로파일링 툴을 이용한 성능 변화 감시, 결합 테스트 환경에 대한 배포 작업의 큰 도움을 준다.

젠킨스 설치

docker run \
  --name jenkins_1 \
  -p 8081:8080 \
  -e TZ=Asia/Seoul \
  -v /docker_projects/jenkins_1/var/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /docker_projects/jenkins_1/data:/data \
  -u root \
  -d \
  --restart unless-stopped \
  jenkins/jenkins:lts

 

-v /docker_projects/jenkins_1/var/jenkins_home:/var/jenkins_home \

내부에 /var/jenkis_home에 들어가 있는 것들을 외부로 뺀다. (볼륨을 잡는다.=>컨테이너가 삭제되어도 백업) 

-v /docker_projects/jenkins_1/data:/data \

도커 이미지를 빌드 해야하기 때문에 외부(CentOS9)에서 도커 안쪽에서 명령어를 사용할 수 있도록 안내

**참고** run이 안되면 도커 재 실행 sudo systemctl restart docker

젠킨스 접속

  • http://[ip]:8081

젠킨스 접속

  • 젠킨스 초기 비밀번호 확인 후 로그인
  • docker exec jenkins_1 cat /var/jenkins_home/secrets/initialAdminPassword

젠키스 초기 비밀번호

  • 플러그인 설치
  • 젠킨스 사용자 생성
  •  

젠킨스 시작

  • New Item 버튼 클릭
  • 프리스타일 프로젝트 생성 
  • Build Steps => Execute shell => touch ABC  => save => Build Now

build

  • 확인해보기 위해 ls -alh /docker_projects/jenkins_1/var/jenkins_home/workspace/basic_work_1
  • workspace인 /var/jenkins_home/workspace/basic_work_1은 도커 이미지 설정 시 주었던
-v /docker_projects/jenkins_1/var/jenkins_home:/var/jenkins_home \

/docker_projects/jenkins_1/var/jenkins_home/workspace/basic_work_1에서 확인해 볼 수 있다.

 

workspace

  • 이전에 프로젝트를 만들때 쉘에서 touch로 만들어준 파일을 확인할 수 있다.
  • 만약 프로젝트에서 Git Repository URL을 추가하고 workspace를 확인해보면 자동으로 git pull이 되어있는 것을 확인할 수 있다.

 

**참고 사항**

개발 환경 (Cent OS9)

체크사항 1 : 호스트전용어댑터

 

체크사항 2 : 계정에 sudoer 권한이 있는지 

  • vim /etc/sudoers

체크사항 3 : SELINUX 꺼져있는지

  • sudo vi /etc/selinux/config
    • SELINUX=disabled

체크사항 4 : firewalld 꺼지있고, 비활성화 되어 있는지

  • sudo systemctl stop firewalld
  • sudo systemctl disable firewalld

체크사항 5 : yum epel-release 설치, yum update

  • sudo yum install epel-release
  • sudo yum update -y

체크사항 6 : 도커설치 확인 및 도커관련 초기화

# 컨테이너 삭제
docker rm -f $(docker ps -qa)

# 이미지 삭제
docker rmi -f $(docker images -qa)

# 안쓰는 네트워크 삭제
docker network prune -f

# 안쓰는 볼륨 삭제
docker volume prune -f

# 도커 프로젝트 삭제
sudo rm -rf /docker/projects
sudo rm -rf /docker_projects