CI/CD(3) : Jenkins 설치

NOHHYEONGJUN·2024년 9월 14일

CI/CD

목록 보기
4/15

Jenkins

Java Runtime Environment 기반 동작
플러그인을 통한 자동화 작업

이번 글에서는 설치까지만 하고, 다음 장부터 파이프라인을 구성해 보겠따!


1. docker 설치

Amazon Linux

sudo yum install docker -y
sudo service docker start
sudo usermod -aG docker ec2-user

Ubuntu

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

sudo usermod -aG docker $user

 

 


2. docker-compose 설치

Amazon Linux

sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Ubuntu

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

 

 


3. docker-compose.yaml & Dockerfile 작성

docker-compose.yaml

version: '3.8'
services:
  jenkins:
    build: .
    container_name: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always

volumes:
  jenkins_home: {}

 

Dockerfile

FROM jenkins/jenkins:lts

USER root
RUN apt-get update && apt-get install -y docker.io awscli

Run groupadd docker || true && usermod -aG docker jenkins || true
Run if [ -e /var/run/docker.sock ]; then chown jenkins:jenkins /var/run/docker.sock; fi

USER jenkins

 

Build 및 docker-compose 실행

docker-compose up --build -d

 

 


4. Jenkins 접속

1. VPN 사용 시

http://PrivateIP:8080

 

2. Tunneling 사용 시

http://localhost:8080

 

3. EC2 Instance Connect Endpoint (EICE) 사용 시

ssh -i pem키 \
    -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id %h --region ap-northeast-2' \
    -L 로컬 포트 지정:jenkins ec2 ip:8080 \
    ec2-user@i-012346a502de92e4a(jenkins ec2 id)
    
# 예시
ssh -i dev-ec2-bastion-keypair.pem \
    -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id %h --region ap-northeast-2' \
    -L 8080:10.2.201.12:8080 \
    ec2-user@i-012346a502de92e4a(jenkins ec2 id)

 

 


5. Jenkins Plugin 설치

  1. gitlab 설치

 

 


6. Credentials 추가

User Name : GitLab의 로그인 ID
Password : gitlab의 access token
ID : 젠킨스에서 식별할 이름


profile
Cloud/DevOps & Network Virtualization에 관심 있는 Engineer입니다. 🐳⚓️👨‍✈️

0개의 댓글