Jenkins 설치 환경 만들기


서론

이 장은 MacOS와 Ubuntu 22.04 기준으로 Jenkins를 직접 설치해본 경험을 바탕으로 설치 방법을 설명한다.

Install Jenkins

MacOS

  • 사전에 Homebrew가 설치되어 있어야 한다.
  • Jenkins 홈페이지에 접속해보자

https://www.jenkins.io/download/

  • Terminal을 키고 아래 명령어를 입력해 설치한다.
brew install jenkins-lts
  • 설치가 완료되면 아래 명령어를 입력해보자
ps auxww | grep jenkins
  • jenkins가 아직 실행중이지 않는 것을 알 수 있다, 아래 명령어를 통해 jenkins를 실행시켜준다.
brew services restart jenkins-lts

Jenkins Running Information

  • 또는 아래 명령어로 jenkins 프로세스 정보를 알 수 있다.
brew services info jenkins-lts

Jenkins 종료

  • Jenkins를 중단하고 싶다면 아래 명령어로 종료할 수 있다.
brew services stop jenkins-lts
  • localhost:8080 을 웹 브라우저(e.g. Chrome)에 입력한다.
  • 그러면 Jenkins Home directory를 알 수 있다.
  • 보통 ~/.jenkins/ … 이러한 위치에 설치된다.
  • 만약 Jenkins의 설정을 변경하고 싶다면 Jenkins 관련된 설정 .plist를 통해서 수정할 수 있다
  • Jenkins home directory
  • Java version
  • Port
  • etc..
sudo vim /opt/homebrew/Cellar/jenkins-lts/2.440.3/homebrew.mxcl.jenkins-lts.plist
  • 아래 명령어로 초기 패스워드를 확인하고 입력해준다.
cat /Users/woojaejoo/.jenkins/secrets/initialAdminPassword
  • Manage Jenkins → System Information을 눌러 여러 설정들을 확인 할 수 있다.

Install Ubuntu Linux

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
    https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
 echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
    https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
    /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install fontconfig openjdk-17-jre
sudo apt-get install jenkins

Jenkins status 확인

sudo systemctl status jenkins

Jenkins 재시작

sudo systemctl restart jenkins

Jenkins CLI 설치

WebUI가 아닌 터미널로 진행해야할 때는 CLI를 설치해줘야 한다.

wget http://<JENKINS_URL>/jnlpJars/jenkins-cli.jar

Jenkins에서 토큰 발급(WebUI 접속필요)

로그인 후 사용자 클릭하여 설정을 누른다.

Add new Token을 선택해 토큰을 Generate한다.

그러면 토큰 키가 보이는데 해당 키를 복사해둔다. (다시 참조가 불가능하다)

플러그인 설치 방법

ex.) 127.0.0.1:8080주소를 가진 젠킨스 서버에서 ssh-agent 라는 플러그인을 설치한다.

java -jar jenkins-cli.jar -s http://127.0.0.1:8080 -auth <USER>:<TOKEN> install-plugin ssh-agent

나중에 파이프라인 생성 후 시각화를 위해 아래 플러그인들은 설치해두자.

java -jar jenkins-cli.jar -s http://127.0.0.1:8080 -auth admin:<TOKEN> install-plugin pipeline-stage-view
java -jar jenkins-cli.jar -s http://127.0.0.1:8080 -auth admin:<TOKEN> install-plugin workflow-aggregator
java -jar jenkins-cli.jar -s http://127.0.0.1:8080 -auth admin:<TOKEN> install-plugin pipeline-model-definition
java -jar jenkins-cli.jar -s http://127.0.0.1:8080 -auth admin:<TOKEN> install-plugin pipeline-graph-analysis

서버 재시작

플러그인 설치 후 재시작해야한다.

sudo systemctl restart jenkins

Jenkins Log 보기

sudo tail -f /var/log/jenkins/jenkins.log

외부에서 접속가능하도록 만들기(DNS 설정)

  • Ngrok에 가입하고 로그인한다.

https://ngrok.com/

  • 그럼 아래와 같은 화면이 보일 것이다, 순서대로 터미널에 입력한다.
brew install ngrok/ngrok/ngrok
ngrok config add-authtoken <your_password_key>
  • 만약 외부 접속을 허용하도록 하고싶은 주소가 8080포트에 로컬 호스트라면, 아래처럼 터미널에 입력한다.
  • https://<web_link>.app 형태의 주소가 보일 것이다. 이 주소가 외부에서 접속이 가능한 주소다.
ngrok http http://localhost:8080