삽질도 두드려 보고,

DESIGN YOUR EXPERIENCE

Deployment

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.
토픽 삽질도 두드려 보고, > DevOps > PyCharm Professional

개요

 PyCharm에는 프로젝트를 실제 서비스를 제공할 서버에 업로드하는 Deployment라는 기능을 제공합니다. 이 기능을 이용하면 소스코드의 변경사항을 신속하게 서버에 반영할 수 있습니다. 원격 서버에 업로드하는 기능은 Linux 운영체제를 기준으로 설명합니다.

 이 기능은 Linux 기반 또는 SFTP를 지원하는 서버 컴퓨터를 대상으로 지원합니다.

업로드 설정

 PyCharm을 실행시킨 뒤 서버에 배포할 프로젝트를 불러옵니다. 여기선 간단한 웹 페이지를 출력하는 프로젝트를 대상으로 진행합니다.

 제일 먼저 해야할 일은 이 앱이 배포될 서버에서 이 앱으로 접속하기 위한 도메인 주소를 settings.py에 지정해야 합니다. 프로젝트 폴더 안에 있는 settings.py에서 ALLOWED_HOSTS 리스트가 바로 이를 설정하는 부분입니다.

 배포 서버로 올리기 위해 Deployment 설정을 합니다. Tools -> Deployment -> Configuration... 을 선택한 후

 + 버튼을 누른 후 SFTP를 선택합니다. 이어 나오는 New server name은 우리가 배포할 서버 프로필에 대한 별명을 지어줍니다. 여기서는 배포 서버라 지었습니다.

 배포 서버에 접속하기 위한 URL과와 SFTP ID 및 비밀번호를 입력한 후 Test Connection 버튼을 눌러 정상적으로 로그인이 되는지 확인하세요!

 Test Connection 누르고 아래 이미지처럼 인증 경고가 나타나면 Yes 누릅니다.

 아래 이미지처럼 로그인이 성공하면 다음 단계로 넘어갑니다.

 Root path에서 폴더 아이콘을 선택한 후 나타나는 경로 선택 창에서 app을 선택한 후 확인을 누릅니다. 이 작업은 우리가 업로드할 프로젝트 파일들이 어느 경로에 저장될 지 지정합니다. 반드시 app을 선택하여 Root path에 /app이라고 나타나도록 하십시오.

Caption

 Mappings 탭에서 Deployment path 경로를 백슬래쉬(\)로 지정한 뒤 OK를 눌러 설정을 마칩니다.

Caption

 다시 Tools -> Deployment -> Options... 로 들어가서 업로드 작업에서 제외시킬 파일 및 폴더들을 지정해야 합니다.

Caption

 Exclude items by name에 적혀있는 여러 파일/폴더 경로 끝에 콜론(;)(구분자)을 입력하고 venv라 적습니다. OK를 눌러 설정을 저장합니다.

Caption
 우리가 Windows 컴퓨터에서 개발하는 Python 가상환경(venv)과 Linux에서 사용하는 Python 가상환경은 구조가 다르기 때문에 서버에 배포할 때에는 venv 폴더를 제외시켜야 합니다. 서버에서는 requirements.txt 파일을 토대로 서버 관리자가 직접 가상환경을 생성합니다.

 PyCharm에서 배포 서버로의 업로드 설정을 마쳤습니다. 이제 업로드하는 작업만 남았습니다. 이제부터는 부가적인 설정을 하지 않고 아래 과정만으로 서버에 올려진 앱을 업데이트 할 수 있습니다.

배포

 먼저 웹 서버가 정적 파일을 불러올 수 있도록 python manage.py collectstatic 명령을 통해 한 곳에 모아주어야 합니다. 정적 파일은 Django에서 처리하지 않고 웹 서버가 직접 다루는 것이 Django의 특징입니다. 정적 파일을 사용하지 않는다면 이 과정은 건너 뛰어도 됩니다.

 wsgi.py 파일을 수정해야 합니다. wsgi.py 파일은 앱 최상위 폴더의 django 프로젝트 폴더 안에 있습니다. 이 파일의 마지막 수정 날짜를 기준으로 웹 서버가 이 앱이 새로 업로드(수정)되었는지 인지합니다. 그러니 업로드 전에 항상 wsgi.py 파일을 열어 주석의 몇 글자를 수정한다든지, Enter를 몇 번 쳐서 줄 바꿈을 한다던지 해서 최신 파일로 만들어 주어야 합니다.

 왼쪽 프로젝트 탐색기 창에서 최상위 디렉터리인 hello_django(프로젝트 명)를 선택한 상태(클릭)에서 Tools -> Depolyment -> Upload to 배포 서버를 클릭하여 업로드를 진행합니다. PyCharm 하단에 업로드 진행 과정이 나타나므로 이 작업이 완료될 때 까지 네트워크 연결을 유지하십시오.

 왼쪽 프로젝트 탐색기 창에서 선택한 디렉터리의 하위 항목만 업로드 대상이 됩니다.
 자신이 로컬에서 제작한 앱을 인터넷에 공개하기 전에 몇 가지 준수해야할 사항들이 있습니다. 자세한 내용은 [링크]를 참조하세요.
 웹 앱을 계속 업데이트 하다가 pip를 통해 특정한 라이브러리를 추가로 설치하면 서버의 가상환경(venv)에도 반영을 해 주어야 합니다.

파일 작업

 SFTP 연결을 통해 GUI로 서버의 파일 시스템을 관리하고 싶다면 FileZilla와 같은 무료 FTP 클라이언트 프로그램을 활용할 수 있습니다.

  • 봤어요 0명

댓글

댓글 본문