[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')

위 스크립트는 다음과 같은 작업을 수행합니다.

Fabric 스크립트 실행

Fabric 스크립트를 실행하려면 다음 명령어를 사용합니다.

fab deploy

이 명령어를 실행하면 스크립트에 정의된 작업들이 차례대로 실행됩니다.

결론

이렇게 Fabric을 사용하여 Django 프로젝트를 원격 서버에 배포하는 방법에 대해 알아보았습니다. Fabric은 원격 서버 관리 작업을 자동화하는 데 매우 유용한 도구이므로, 프로젝트 배포나 서버 관리 작업을 위해서는 Fabric을 활용해보는 것을 추천합니다.

참고 자료