[python] Fabric과 Django 프로젝트 연동하기
개요
Fabric은 파이썬을 사용하여 SSH를 통해 원격 서버를 관리하는 도구입니다. 이번 포스트에서는 Fabric을 이용하여 Django 프로젝트를 원격 서버에 배포하는 방법에 대해 알아보겠습니다.
Fabric 설치
Fabric을 사용하기 위해서는 먼저 Fabric 패키지를 설치해야 합니다. 다음 명령어를 통해 Fabric을 설치할 수 있습니다.
pip install fabric
Fabric 스크립트 작성
Fabric 스크립트는 특정 명령어들의 집합으로 구성됩니다. 이번에는 Django 프로젝트를 배포하는데 필요한 명령어들을 작성해보겠습니다.
먼저, fabfile.py
파일을 생성하고 다음 코드를 작성합니다.
from fabric.api import env, run, task
env.hosts = ['your-server-ip']
env.user = 'your-username'
env.key_filename = 'path-to-your-ssh-private-key'
@task
def deploy():
git_pull()
virtualenv()
migrate()
collectstatic()
restart_server()
@task
def git_pull():
run('cd /path/to/your/project && git pull')
@task
def virtualenv():
run('cd /path/to/your/project && source venv/bin/activate && pip install -r requirements.txt')
@task
def migrate():
run('cd /path/to/your/project && source venv/bin/activate && python manage.py migrate')
@task
def collectstatic():
run('cd /path/to/your/project && source venv/bin/activate && python manage.py collectstatic --noinput')
@task
def restart_server():
run('sudo systemctl restart your-service-name')
위 스크립트는 다음과 같은 작업을 수행합니다.
fab deploy
: 코드를 가져오고 가상 환경을 설정한 후, 마이그레이션, 정적 파일 수집, 서버 재시작 작업을 순서대로 실행합니다.fab git_pull
: Git 레포지토리에서 코드를 최신으로 갱신합니다.fab virtualenv
: 가상 환경을 생성하고 필요한 패키지를 설치합니다.fab migrate
: Django의 마이그레이션을 수행합니다.fab collectstatic
: 정적 파일을 수집합니다.fab restart_server
: 서버를 재시작합니다.
Fabric 스크립트 실행
Fabric 스크립트를 실행하려면 다음 명령어를 사용합니다.
fab deploy
이 명령어를 실행하면 스크립트에 정의된 작업들이 차례대로 실행됩니다.
결론
이렇게 Fabric을 사용하여 Django 프로젝트를 원격 서버에 배포하는 방법에 대해 알아보았습니다. Fabric은 원격 서버 관리 작업을 자동화하는 데 매우 유용한 도구이므로, 프로젝트 배포나 서버 관리 작업을 위해서는 Fabric을 활용해보는 것을 추천합니다.