[CI/CD] frontend - backend

이정훈·2023년 5월 2일
0

CI/CD

목록 보기
4/11
post-thumbnail
  • frontend를 이제 젠킨스를 통해서 쿠버 마스터에 연결이 되어 거기서 이미지파일을 만들어 야멜파일을 가지고 디플로이먼트를 만들어 보고자 한다!

  • 우선 젠킨스가 쿠버에 접속할수 있도록 ssh키 설정을 해야한다.

젠킨스 ssh 설정

rm -rf ~/.ssh/*  # 잘못만들었으면 지우고 다시 하자!
ssh-keygen -t rsa -b 4096 -m PEM 
엔터 3번

ssh-copy-id root@[쿠버네티스마스터노드IP]

  • 키를 발급해서 쿠버마스터에 저장해준 이유는 앞에서 확인했던 대화형 명령어이기 때문이다. 바로 ssh에 접속하기 위해서 키를 발급해 줬던것이다.
  • ssh root@마스터노드IP 이거 해줬을 때 바로 연결되었으면 오케이!

젠킨스 설정 변경

  • 젠킨스 대시보드 -> Jenkins 관리 -> 플러그인 관리 -> Available plugins -> Publish Over SSH 검색 후 체크 -> Download now and install after restart 클릭
    -> 설치가 끝나고 실행중인 작업이 없으면 Jenkins 재시작 체크
  • 젠킨스 대시보드 -> Jenkins 관리 -> 시스템 설정 -> Publish over SSH -> Key: 키파일 내용 붙여넣기, SSH Servers에서 추가
    -> Name: 아무거나, Hostname: 마스터노드의IP, Username: root, Remote Directory: / -> 저장

  • key 파일은 jenkins에서 만들었던 키파일이다.
    cat cd ~/.ssh/id_rsa 여기서 확인하자!
  • 연결이 확인! success

파이프라인 만들기 - front

  • 마지막 프로젝트를 이전에 깃웹훅 만들었던 레지스토리에 푸쉬해 놓자!
  • 파이프라인 선택 -> 구성 -> 빌드 후 조치 에서 Send build artifacts over SSH
Name: 아무거나, Source files: * , # 모든 파일을 넘기겠다. 
Remote directory: /tmp
Exec command:  
sed -i "s/latest/$BUILD_ID/g" /tmp/deployment-frontend.yml
sudo bash -c "kubectl apply -f /tmp/deployment-frontend.yml"
  • sed 명령어로 만들어지는 이미지의 넘버를 최신으로 유지시켜 주는 것이다.
  • bash 명령어로 쿠버를 작동시켜주면 된다.
  • yml 파일 작성할 때,
  • 사용되는 이미지파일을 latest로 해주기!

  • 젠킨스가 다운받고 실행시켜줘야한다.

  • 이 친구는 docker.sock의 권한이 없으니깐 줘야한다.
    chmod 666 /var/run/docker.sock

파이프라인 만들기 - back

  • 사용하고자하는 프로젝트를 일단 깃 허브에 만들어 놓고 젠킨스와 통신할 수 있도록 레퍼지토리에서 깃 웹훅을 설정해 준다.
  • 나머지 설정들은 front랑 동일
  • 파이프라인 선택 -> 구성 -> 빌드 후 조치 에서 Send build artifacts over SSH
Name: 아무거나, Source files: * , # 모든 파일을 넘기겠다. 
Remote directory: /tmp
Exec command:  
sed -i "s/latest/$BUILD_ID/g" /tmp/deployment-backend.yml
sudo bash -c "kubectl apply -f /tmp/deployment-backend.yml"
  • docker 이미지 파일을 만들 떄는 방화벽이 활성화되어 있어야한다.
  • pip에서 오류가 나면 pip3로 도커파일을 실행해 보자!
  • 설정들을 전부 완료했으면 3계층 만들기! 여기서 사용했던 것들중 서비스랑 컨피그맵을 참조해서 태그들을 잘 연결해 주면 된다!

  • 젠킨스로 모든것을 컨트롤 하지 않고 연결시키기 위한 나머지 작업을 해줘야 한다!(컨피그맵, 서비스 등등)
profile
싱숭생숭늉

0개의 댓글