728x90
반응형
수동으로 배포를 해보았으니, 자동으로 배포하는 과정을 한번 진행해보자.
위 일련의 과정들을 쉘 스크립트로 작성 (로컬쪽에 저장해두기)
#!/bin/bash
# git clone
echo "Start to clone"
git clone {<https://github.com/>.....}
cd Dev_django_app
# venv 설치
echo "Start to install venv"
sudo apt-get update
sudo apt install -y python3.8-venv
# venv 구성
echo "Start to make venv"
python3 -m venv venv
# 가상환경 작동
echo "Start to activate venv"
source venv/bin/activate
# pip install
echo "start to install requirements"
pip install -r requirements.txt
# runserver
echo "Start to runserver"
cd lion_app
python3 manage.py runserver 0.0.0.0:8000
NCP 에서 서버를 하나 더 띄우고 (자동배포 테스트용)
서버2 에서도 root 말고 슈퍼유저 권한을 가지는 새로운 user 로 접속해보자
ssh root@{공인 IP 주소}
비밀번호 찾는법:
접속 후 유저를 생성해주고 권한을 부여하기
adduser lion2
echo "lion2 ALL=(ALL:ALL) ALL" >> /etc/sudoers.d/lion2
$ cat /etc/sudoers.d/lion2
lion2 ALL=(ALL:ALL) ALL
su lion2
다시 로컬로 돌아와 접속과정에서 공인 IP를 쓰지 않고 유저정보와 호스트이름으로 접속하게 수정
vi ~/.ssh/config
Host likelion
HostName {공인 아이피 주소}
User lion
Host likelion2
HostName {공인 아이피 주소2}
User lion2
...
이제 2번째로 오픈한 서버로, 방금 생성한 유저 정보로 접속
ssh lion2@likelion2
자 이제 로컬에서 만들어둔 deploy.sh 파일을 두번째 서버에 넣어야하는데, 간단히 그냥 복사 붙여넣기로 만들 수 있다.
그러나 이번에는 scp (리눅스 - ssh 원격 접속 프로토콜을 기반으로 한 파일 전송 프로토콜)을 사용한다.
로컬에서 deploy.sh 파일이 있는 위치에서
scp deploy.sh {생성한 유저 이름}@{공인 IP 주소}:/home/lion2/ # 가져다 놓을 경로!
해당 유저로 접속하는 비밀번호를 입력하면,
deploy.sh 100% 542 94.9KB/s 00:00
전달이 된 것을 확인할 수 있다.
이제 실행시키면,
./deploy.sh
lion2@...:~$ ./deploy.sh
Start to clone
Cloning into 'Dev_django_app'...
remote: Enumerating objects: 22, done.
remote: Counting objects: 100% (22/22), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 22 (delta 6), reused 18 (delta 5), pack-reused 0
Unpacking objects: 100% (22/22), 5.44 KiB | 1.09 MiB/s, done.
./deploy.sh: line 6: cd: dev_django_app: No such file or directory
Start to install venv
Hit:1 <http://repo.ncloud>
...
...
...
다시 “DisallowedHost” 메세지와 함께 노란색 화면이 뜬다.
→ 서버 띄우기 까지는 성공했고 ALLOWED_HOSTS 설정만 바꾸면 된다는 뜻!
로컬에서 ALLOWED_HOSTS 를 업데이트 후 push !
서버2 에서 git pull 받고 서버 동작시키면,
(venv) lion2@...$ git pull
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 2), reused 6 (delta 2), pack-reused 0
Unpacking objects: 100% (6/6), 894 bytes | 894.00 KiB/s, done.
From <https://github.com/...>
8519ede..3326f98 main -> origin/main
Updating 8519ede..3326f98
Fast-forward
deploy.sh | 28 ++++++++++++++++++++++++++++
lion_app/lion_app/settings.py | 1 +
2 files changed, 29 insertions(+)
create mode 100755 deploy.sh
(venv) lion2@...$
python3 manage.py runserver 0.0.0.0:8000
728x90
반응형
'Dev. > Cloud' 카테고리의 다른 글
[Cloud] 배포 - NCP : Nginx 설정파일 (0) | 2023.08.04 |
---|---|
[Cloud] 배포 - NCP : Nginx, gunicorn (0) | 2023.08.03 |
[Cloud] 배포 - NCP : Django App 생성부터 배포 (0) | 2023.07.31 |
[Cloud] 시작 - NCP : VScode 로 원격 접속하기 (0) | 2023.07.29 |
[Cloud] 시작 - NCP : Server 띄우기 (0) | 2023.07.28 |
댓글