Jenkins 란?
Jenkins 는 자바 기반으로 만들어진 오픈 소스 자동화 서버이다. 소프트웨어 개발 프로세스의 CI/CD 를 지원하는 도구이다. 개발자들이 코드 변경 사항을 통합하고 배포하는 작업을 자동화할 수 있도록 돕는다.
Jenkins 는 다양한 플러그인을 지원하여 쉽게 확장할 수 있다. 또한, 활성화된 커뮤니티로 문제 해결과 학습이 용이하다. 그리고 제일 중요한 !! 오픈 소스로 무료로 사용할 수 있다.
Linux 환경 구성
이번 포스팅에서는 리눅스 환경을 설정하고 구성하는 방법에 대해 작성할 것이다. 먼저 리눅스 환경을 구성하기 위해 선택지가 있지만, 이번에는 클라우드 환경의 리눅스를 이용하는 방법을 작성하려고 한다. 가장 빠르고 향후 확장성이 좋다.
Amazon Aws, Gitpod, Github workspace 등을 사용해 구동 환경을 만들 수 있다.
Gitpod 을 이용해 Jenkins 구동 환경을 만들자.
1. 먼저 아래 사이트에 회원가입을 진행한다.
Gitpod: Always ready-to-code.
Gitpod is a platform for automated and standardized development environments. Available self-hosted in 3 minutes, or run locally on your laptop.
www.gitpod.io
2. Gitpod Classic > New Workspace > vscode(Browser) > Create


3. docker 을 pull 받고 docker ps 명령어를 통해 docker 프로세스 상태를 출력한다.
docker pull jenkins/jenkins:lts-jdk17
docker ps
아래와 같이 나온다면 docker 가 잘 깔려져 있는 것이다.

4. 폴더를 만들어준다.
- docker/jenkins/jenkins_home 경로
- docker/jenkins/docker-compose.yml 파일


5. docker-compose.yml 파일에 설정을 입력한다. 환경에 따라 다르게 세팅한다.
services:
jenkins:
container_name: jenkins
# image: jenkins/jenkins:lts-jdk17
image: {내용}
user: root # 특정 경로에 기억될 때 사용할 유저명
ports:
- "8080:8080" # 여러 개 입력 가능
volumes:
- "/workspace/jenkins-playground/docker/jenkins/jenkins_home:/var/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
# 왼쪽은 서버 경로, 오른쪽은 컨테이너 경로
# gitpod랑 git codespace 는 workspace 부분만 다름 (git은 workspaces)
# 포함 관계를 설명하기 위해서는 들여쓰기가 중요하다.
# lts 가 최신 버전을 가져온다는 의미
6. 폴더에 적절한 권한을 부여한다.
cd docker/jenkins
ls
chmod 777 ./jenkins_home/ -R #권한부여
7. Jenkins를 Docker compose 로 실행한다.
docker compose up -d

8. Jenkins의 최초 비밀키를 확인한다.
docker compose logs
docker logs -f jenkins
중간에 나타나는 3f12579a70444d7d9f36977dcb935644 가 비밀키이다.

9. Ports 탭으로 가서 Open Browser 을 클릭한다.

Jenkins 초기 설정
10. Jenkins 브라우저에서 8.에서 확인한 비밀키를 복사 + 붙여넣기 한다.

11. 추천 플러그인으로 설치한다.


12. 관리자 계정을 만든다.
* 잊으면 Jenkins 설정을 다시해야 하니 꼭 기억해두자 !

다음 편에서 ...
[Jenkins] CI/CD 환경 구축 - 2편, Jenkins Job 생성 및 설정
다음 편 보러가기 ⬇️
[Jenkins] CI/CD 환경 구축 - 2편, Jenkins Job 생성 및 설정