본문 바로가기
클라우드

깃허브 액션 GCP 연동 방법

by 데분노트 2025. 1. 21.

전체적인 흐름은 아래와 같다.

 

1단계: Local PC에서 Streamlit 코드 작성하고 테스트

2단계: 테스트가 완료된 이후, Github Repo에 소스코드 Push

3단계: Repository에 Push가 되자마자 Github Actions을 통해 GCE 서버로 해당 소스코드를 다운로드 받음

4단계: 실 운영 중인 서버에 코드가 반영되어 업데이트가 되도록 함.

 

사전 준비

  • Secrets and Variables 설정
    • SSH_KEY 개인키 설정
    • HOST : GCE 서버 외부 (External) IP 주소 설정
    • USERNAME : GCE 서버 username 설정

 

준비 방법

  1. 사전에 만들어둔 깃허브 Repository 접속
  2. [Settings > Secrets and variables > Actions] 클릭
  3. New repository secret 클릭
  4. Name에 "SSH_KEY" 입력
  5. GCP 콘솔에서 [Compute Engine > VM 인스턴스] 접속
  6. 미리 만들어둔 인스턴스 활성화 시킨 후, SSH메뉴에서 '브라우저 창에서 보기' 클릭
  7. cat ~/.ssh/id_rsa 입력
  8. ----BEGIN 부분 부터 ----END 부분까지 전부 복사
  9. 다시 깃허브로 돌아와서 Secret에 붙여넣기 후, add secret 클릭
  10. 다시 New repository secret 클릭
  11. Name에 "HOST" 입력
  12. Secret에 외부 IP 값 입력 후, Add secret 클릭
  13. 마지막으로 한 번 더 New repository secret 클릭
  14. Name에 "USERNAME" 입력
  15. Secret에 SSH 브라우저 창에 나오는 @ 앞 아이디 입력(지메일 아이디일거임)
  16. SSH 브로우저 창에서 cd [Repository]로 이동 후, vi deploy.sh 입력하여 파일 생성(로컬에서 코드 업데이트를 하면 자동으로 GCP 서버에 반영되게 하기 위함. 이걸 깃허브 액션 배포 자동화라고 함.) 내용은 아래와 같이 작성.
    1. #!/bin/bash
    2. git pull origin main
  17. git add . -> git commit -m "updated" -> git push

 

Streamlit 파일 생성

  1. vi .github/workflows/streamlit-gcp-project.yml 입력 후, 아래와 같이 입력 후, 저장(git add, git commit, git push까지)
name: CICD-SSH on: [push, pull_request] jobs: ​​build: ​​​​runs-on: ubuntu-latest ​​​​steps: ​​​​- name: executing remote ssh commands using ssh key ​​​​​​uses: appleboy/ssh-action@v1.0.0 ​​​​​​with: ​​​​​​​​host: ${{ secrets.HOST }} ​​​​​​​​username: ${{ secrets.USERNAME }} ​​​​​​​​key: ${{ secrets.SSH_KEY }} ​​​​​​​​port: 22 ​​​​​​​​script: | ​​​​​​​​​​​​whoami ​​​​​​​​​​​​ls -al ​​​​​​​​​​​​cd ${{ github.event.repository.name }} ​​​​​​​​​​​​echo "Hello World!" ​​​​​​​​​​​​chmod +x deploy.sh ​​​​​​​​​​​​sh deploy.sh ​​​​​​​​​​​​echo "Done----"

-> 결국 deploy.sh 를 실행하려고 하는 것(git pull)

2. 오류 발생하면, [깃허브 프로필 > Setting > SSH and GPG keys]에서 키 복사 후 GCP, 메타데이터 SSH KEYS에도 Public Key 재입력

'클라우드' 카테고리의 다른 글

깃허브 액션(Github Actions) 기초 사용 방법 with GCP  (0) 2025.01.07
GCP 가상머신 만들기  (0) 2024.11.10

댓글