Github Actions SSH로 Oracle Cloud에 접근해보자

LeeKyoungChang·2023년 9월 1일
0
post-thumbnail

🤔 현재 나는 무슨 상황일까?

저는 Oracle Cloud에 가상서버를 실행했습니다.

스크린샷 2023-09-01 오전 11 07 06

 

👆🏻 이 전글을 확인하시면 Oracle Cloud로 가상서버 띄울 수 있습니다.
Oracle Cloud 가상 서버 띄우기

 

이후, Github Actions을 통해 업데이트 된 프로젝트를 배포파일로 만든 후, 실행했지만 가상서버에서는 해당되는 port가 존재하지 않았습니다.

문제 상황 정리한 Github Issues

 

왜? Github Actions에서 생성한 가상서버에 접근 불가했던걸까?

이유는 매우 간단했습니다.

Github Actions에서 테스트 한 것은 생성한 가상서버에서 한 것이 아닌, 자체 Github Actions 내부에서 실행해서 발생했던 문제였습니다.

 

✅ 그러면 어떻게 가상서버에 접근 할 수 있나요?

Github Actions에서 ssh를 통해 생성한 가상서버에 접근하면 됩니다.

Github Repository에서 해야할 설정

Github Repository -> Settings -> Secrets and variables(클릭) -> Actions

스크린샷 2023-09-01 오전 11 15 25

 

✔️ Repository secrets을 추가해주자

Secrets에서 New repository secret를 통해 총 4개의 secrets를 추가했습니다.
스크린샷 2023-09-01 오전 11 16 48

  • REMOTE_IDENTITYFILE : security key (인스턴스 생성할 때 발급받는 RSA PRIVATE KEY)

    • BEGIN ~ END 복사해서 붙여넣기

      스크린샷 2023-09-01 오전 11 23 03
  • REMOTE_IP : IP주소 (저는 129.154.xxx.xxx)

  • REMOTE_PORT : 22

  • REMOTE_USER : Oracle Cloud ID (를 입력하시면 됩니다.)

 

 

Github Actions에 추가 한 후, 테스트 해보자

✔️ Github Actions에서 밑의 소스를 추가한 후

스크린샷 2023-09-01 오전 11 28 14
name: Java CI with Gradle

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]


jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3.3.0

      - name: execute remote ssh
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.REMOTE_IP }}
          username: ${{ secrets.REMOTE_USER }}
          key: ${{ secrets.REMOTE_IDENTITYFILE }}
          port: ${{ secrets.REMOTE_PORT }}
          script: |
            whoami
            ls -al

 

✔️ 현재 가상서버에는 어떤 파일이 있을까?

현재 가상서버에는 chang, test가 존재합니다.

스크린샷 2023-09-01 오전 11 32 15

 

✔️ Github에 push를 통해 Github Actions을 실행시켜 볼께요!

스크린샷 2023-09-01 오전 11 30 26

 

✔️ push 후 Github Actions 빌드 실행 중...

스크린샷 2023-09-01 오전 11 31 37

 

✔️ deploy에서 execute remote ssh를 확인하자

정상적으로 ssh를 통해 생성한 가상서버에 접근한 것을 확인할 수 있습니다.

스크린샷 2023-09-01 오전 11 36 25

 

🙋🏻 이거 너무 메모리 잡아먹는게 아닐까?

개인적으로 Oracle Cloud에서 생성한 가상서버 자체에서 빌드를 실행해서 배포파일 만들고 실행까지

서비스에 많은 영향을 주지 않을까? 라는 생각을 하게 됐습니다.

다른 방안이 있는지 알아본 후, 되도록 이면 성능 개선을 해보겠습니다.

 

 


참고사항

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글