[python] Fabric과 Flask 프로젝트 연동하기

Flask는 파이썬으로 개발된 경량급 웹 프레임워크입니다. Fabric은 파이썬 기반의 서버 관리 도구로, 웹 프로젝트를 배포하고 관리하는 데 유용한 기능을 제공합니다. 이번 블로그 포스트에서는 Fabric을 사용하여 Flask 프로젝트를 배포하고 관리하는 방법에 대해 알아보겠습니다.

1. Fabric 설치하기

Fabric를 사용하려면 먼저 파이썬 패키지인 Fabric을 설치해야 합니다. 아래 명령어를 사용하여 Fabric을 설치합니다.

pip install fabric

2. Fabric 스크립트 작성하기

Fabric을 사용하여 Flask 프로젝트를 배포하려면 Fabric 스크립트를 작성해야 합니다. 아래는 간단한 Fabric 스크립트의 예시입니다.

from fabric import Connection

def deploy(connection):
    # 원격 서버에 접속하여 코드를 업데이트합니다.
    with connection.cd('/path/to/project'):
        connection.run('git pull')

    # 가상 환경에 필요한 라이브러리를 설치합니다.
    with connection.cd('/path/to/project'):
        connection.run('venv/bin/pip install -r requirements.txt')

    # 서버를 재시작하여 변경 사항을 적용합니다.
    connection.sudo('systemctl restart gunicorn')

def main():
    # 원격 서버에 접속합니다.
    connection = Connection('remote-server')

    # deploy 함수를 실행합니다.
    deploy(connection)

if __name__ == '__main__':
    main()

위 스크립트에서는 deploy 함수를 작성하여 원격 서버에 접속하고 코드를 업데이트한 후, 가상 환경을 설정하고 서버를 재시작하는 과정을 수행합니다.

3. Flask 프로젝트와 Fabric 스크립트 연동하기

Fabric 스크립트를 Flask 프로젝트와 연동하려면 먼저 Flask 프로젝트 디렉토리에 Fabric 스크립트 파일을 복사해야 합니다. 그리고 스크립트를 실행하기 위한 명령어를 Flask 프로젝트의 manage.py 파일에 추가합니다.

import os
from flask_script import Manager
from fabric.api import local

manager = Manager(app)

# Fabric 스크립트를 실행하는 명령어를 추가합니다.
@manager.command
def deploy():
    local('fab deploy')

if __name__ == '__main__':
    manager.run()

위 예제에서는 Flask-Script 라이브러리를 사용하여 manage.py 파일에 deploy 명령어를 추가합니다. 이 명령어는 Fabric 스크립트를 실행하는 역할을 합니다.

4. Flask 프로젝트 배포하기

이제 Flask 프로젝트를 배포하기 위해 아래 명령어를 실행할 수 있습니다.

python manage.py deploy

이 명령어를 실행하면 Fabric 스크립트가 실행되어 원격 서버에 접속하여 코드를 업데이트하고 서버를 재시작합니다.

마무리

이번 글에서는 Fabric과 Flask 프로젝트를 연동하여 웹 애플리케이션을 배포하는 방법에 대해 알아보았습니다. Fabric을 사용하면 배포 및 관리 과정을 자동화하고 효율적으로 웹 프로젝트를 운영할 수 있습니다. Fabric의 다양한 기능을 활용하여 웹 애플리케이션의 배포를 더욱 간편하고 효율적으로 관리해보세요!

참고 자료