깃허브 액션으로 CI/CD를 구현하는데  리눅스는 서버 쪽에 좀 챙겨할 부분이 있어서 정리 합니다.

 

1. 공개키 / 비밀키를 생성

    ssh-keygen -t rsa -b 4096 -f 키이름

 그러면 이름으로 public 키와 private 키가 만들어짐.

 

이때  passphrase는 공백으로 만들어줌.

 

public 을 열어서 서버의 ~/.ssh/authorized_keys 파일을 열어서 복사한 내용을 한줄 추가.

 

2. 파일 권한을 변경해야 함. (이걸 안해서 키만 엄청 만들었음.)

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

 

3. sshd_config 수정 (기본적으로 설정이 안되어있음)

/etc/ssh/sshd_config

PubkeyAuthentication yes

PasswordAuthentication no

AuthorizedKeysFile .ssh/authorized_keys

 

수정후 ssh 재시작

sudo systemctl reload sshd

 

4. cmd 창열어서 priavte 키 있는곳에 가서 접속

ssh -i 비밀키파일명 -p 포트  사용자계정@서버ip

 

깃허브가서 변수를 추가한다.

 

REMOTE_SSH_HOST -> 서버 ip

REMOTE_SSH_KEY -> 비밀키를 다 복사해서 붙여넣는다.

REMOTE_SSH_USERNAME -> 서버 user

REMOTE_SSH_PORT -> 서버 ssh 포트

 

# Repo Action 페이지에 나타날 이름 
name: Application Deploy

 

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

jobs:
  build:

    runs-on: ubuntu-latest
    steps:
    - name: Start server
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.REMOTE_SSH_HOST }}
        username: ${{ secrets.REMOTE_SSH_USERNAME }}
        key: ${{ secrets.REMOTE_SSH_KEY }}
        port: ${{ secrets.REMOTE _SSH_PORT }}
        script: | 
          sudo docker restart app

 

 

+ Recent posts