Git

GitLab CI/CD] 3. Openssh 설정, scp로 웹서버에 파일전송하기

Fastlane 2022. 9. 6. 09:34
728x90
반응형

GitLab서버에서 웹서버로 파일을 복사하기 위해서는 Openssh 설정이 필요하다. 

 

1. GitLab 서버 로컬에 SSH Key를 생성한다. 

$ ssh-keygen -t rsa
Enter file in which to save the key (/root/.ssh/id_rsa): # enter
Created directory '/home/helloworld/.ssh'.
Enter passphrase (empty for no passphrase): # enter
Enter same passphrase again: # enter
Your identification has been saved in /home/helloworld/.ssh/id_dsa.
Your public key has been saved in /home/helloworld/.ssh/id_dsa.pub.

/home/helloworld/.ssh/ 경로에 Key가 생성되었는지 확인한다. 

id_dsa. : 개인키

id_dsa.pub : 공개키

 

2. 웹서버에 공개키를 세팅한다. 

웹서버에 경로(/home/helloworld/.ssh/)를 미리 설정해둔다. 

공개키를 웹서버로 전송한다. 

scp /home/helloworld/.ssh/id_dsa.pub 계정@아이피:/home/helloworld/.ssh/authorized_keys
Password:비밀번호입력

 

윈도우 웹서버에서는 Openssh 별도 설치가 필요하다. 

이제, 비밀번호 없이 GitLab서버에서 웹서버로 파일을 올릴 수 있다. 

 

3. 배포 시, scp 스크립트 처리하기 

 

scp -r ./project admin@111.111.11.111:/d:/project

scp -r ./project :  디렉토리 내 모든 파일/디렉토리 복사

admin@111.111.11.111 : admin(GitLab 서버 id), 111.111.11.111(GitLab ip)

/d:/project : 웹서버 내 파일 저장 경로

test-job: # 임의로 지정한 JOB 이름
  stage: deploy
  only:
    - test #test branch에서만 실행됨
  before_script:
    - echo "deploy start"
  script:
    - scp -r ./project admin@111.111.11.111:/d:/project
  after_script:
    - echo "deploy end"
  tags:
    - helloworld

 

소스를 test branch에 push하면 deploy단계에서 script를 실행하여 GitLab소스를 웹서버로 자동 배포해준다. 

 

728x90
반응형