gitlab 프로젝트 CI/CD환경 구축하기 4편 -AWS EC2서버에 접속하고 docker를 활용해 jenkins 설치-
1. EC2 서버 접속하기
EC2 서버에 접속하는 방법은 여러가지가 있다
본인이 git bash를 주로 사용하니까 git bash를 이용해 접속해본다
제공받은 pem 파일 경로 위에서 ubuntu 계정으로 접속할려면...
$ssh -i <pem 파일명.pem> ubuntu@<서버 도메인>
질문이 나오는데 Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes 입력하면 된다
접속에 성공하면 git bash창이 다음과 같이 바뀐다
2. docker 설치하기
우분투 환경에서 docker를 설치하려면 공식문서에서 install using the repository 부분 그대로 따라하면 되겠다
https://docs.docker.com/engine/install/ubuntu/
2-1) set up the repository
apt 패키지 업데이트 후에 apt가 HTTPS를 넘어 repository를 사용할 수 있도록 패키지를 설치
$sudo apt-get update
공식문서에 \으로 연결되어있는데 한줄 띈다는 의미로 써진것 같다
근데 실제 명령어에는 \을 쓰면 에러남
https://askubuntu.com/questions/982029/unable-to-locate-package-have-i-done-something-wrong
$sudo apt-get install ca-certificates curl gnupg lsb-release
그리고 docker의 공식 GPG key를 더해준다
당연히 아래 두줄은 위에거 한줄 입력하고 아래거 한줄 입력하고
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
다음 명령 한줄로 repository set up을 수행한다(두줄 아님)
근데 여기서는 중간에 \ 써도 먹히나보네..?
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
2-2) install docker engine
apt 패키지를 업데이트해준다
$ sudo apt-get update
최신버전을 다음 명령어를 수행해서 다운받아준다
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
도커가 잘 설치되어 있는지 버전 확인
$ sudo docker -v
공식문서에서는 hello world image run 해보라는데
$ sudo docker run hello-world
3. jenkins 설치하기
EC2 서버에서 jenkins를 설치하려면 상당히 복잡하다.. linux인지 확인하고.. 자바 설치하고..
https://green-joo.tistory.com/12
도커를 사용하는 이유가 또 여기에 있다
도커에서 jenkins 이미지를 다운받아 pull해서 run하기만 하면 바로 설치, 실행이 가능하다
https://gre-eny.tistory.com/345
https://hudi.blog/install-jenkins-with-docker-on-ec2/
다음 명령을 통해 jenkins LTS 이미지를 다운받는다
$ docker pull jenkins/jenkins:lts
/var/run/docker.sock ~~ permission denied 에러가 날 수 있는데
일반사용자가 docker 명령어를 사용하려고 하면 에러 난다고함
https://github.com/occidere/TIL/issues/116
하나의 방법은 다음 명령을 사용하여 /var/run/docker.sock 파일 권한을 666으로 변경
$ sudo chmod 666 /var/run/docker.sock
혹은 사용자 설정을 먼저 하라고 나와있는데.. 일단 안해봤으니 보류
docker images로 잘 설치되어있는지, 현재 로컬에 존재하는 docker 이미지들을 확인
$ docker images
다음 명령을 통해 다운받은 jenkins 이미지를 container로 띄워 실행할 수 있다
$ sudo docker run -d -p 8080:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts
이미 해당 이름 /jenkins 이미지가 실행중이다라는 에러가 나는 경우..
$ docker rm /jenkins로 지울 수 있다
https://stackoverflow.com/questions/31697828/docker-name-is-already-in-use-by-container
옵션 자세한건 집에서 써보자..
4. jenkins 시작하기
EC2서버의 도메인주소:포트번호로 접속하면 이제는 익숙한 jenkins 시작화면이 보인다
당연히 내 컴퓨터가 아니고 도커 서버에서 실행중이라 파일을 도커에서 읽어야한다
docker exec 명령어는 컨테이너에 접속하는 명령어
# docker의 jenkins 컨테이너에 접속해서 /var/jenkins_home/secrets/initialAdminPassword 읽는다
$ docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
사용하면 다음과 같이 파일의 비밀번호를 읽는다
입력해서 넘어가자
그리고 install suggested plugins로 설치
설치가 끝나면 admin 계정을 생성하라는 아이디, 비밀번호, 이름, 이메일주소 입력하라고 나오는데
적당히 생성해주고 URL을 설정하라고 나온다.
그대로 next하고 start using jenkins 눌러서 시작
참조
https://gre-eny.tistory.com/345
'프로그래밍 > docker & jenkins' 카테고리의 다른 글
gitlab 프로젝트 CI/CD 환경 구축하기 6편 -gitlab에 push하면 자동으로 프론트엔드 빌드하기- (0) | 2023.02.04 |
---|---|
gitlab 프로젝트 CI/CD환경 구축하기 5편 -EC2 서버 내에서 프론트엔드 빌드하기- (0) | 2023.02.04 |
gitlab 프로젝트 CI/CD환경 구축하기 3편 -window에서 node.js & react 프로젝트 빌드해보기- (0) | 2023.02.02 |
gitlab 프로젝트 CI/CD 환경 구축하기 2편 -window에서 jenkins와 gitlab 프로젝트 연동하기 연습- (0) | 2023.02.02 |
gitlab 프로젝트 CI/CD환경 구축하기 1편 -jenkins 설치- (0) | 2023.02.02 |