[python] Fabric으로 서버 운영 상황 보고서 생성하기

서버 운영 상황을 보고서로 생성하는 프로세스는 많은 관리자들에게 필요한 작업입니다. 이를 자동화하기 위해 Fabric을 사용해보겠습니다. Fabric은 SSH를 통해 서버에 명령을 실행할 수 있는 파이썬 라이브러리입니다. 이 예제에서는 Fabric을 사용하여 서버의 상태를 확인하고, 해당 정보를 보고서로 생성하는 방법을 알아보겠습니다.

사전 준비

Fabric을 사용하기 위해 아래 명령을 통해 Fabric을 설치합니다.

pip install fabric

서버 연결 설정

Fabric을 사용하여 서버에 연결하기 위해 fabfile.py라는 파일을 생성합니다. 아래 코드는 서버에 연결하기 위해 필요한 설정을 포함하고 있습니다.

from fabric import Connection

# 서버에 연결하기 위한 정보
host = '서버 IP'
port = 'SSH 포트'
user = '계정 이름'
password = '비밀번호'

# 서버에 연결하는 함수
def connect():
    conn = Connection(host=host, port=port, user=user, password=password)
    return conn

상태 확인 및 보고서 생성

상태 확인 및 보고서 생성은 Fabric의 역할입니다. fabfile.py 파일에 아래 코드를 추가합니다.

from fabric import task
from fabric.reporters import *

# 서버 상태 확인 및 보고서 생성
@task
def check_server_status():
    conn = connect()

    # 서버 정보 확인
    cpu_info = conn.run('cat /proc/cpuinfo | grep "model name"')
    memory_info = conn.run('free -h')
    disk_info = conn.run('df -h')

    # 보고서 생성
    reporter = TextReporter()
    reporter.report_task('서버 상태 확인')

    reporter.report_info('CPU 정보')
    reporter.report_result(cpu_info.stdout)

    reporter.report_info('메모리 정보')
    reporter.report_result(memory_info.stdout)

    reporter.report_info('디스크 정보')
    reporter.report_result(disk_info.stdout)

    # 연결 종료
    conn.close()

실행

fabfile.py 파일을 저장한 후, 아래 명령을 통해 서버 상태 확인 및 보고서 생성 작업을 수행합니다.

fab check_server_status

보고서는 터미널에 출력되며, 필요에 따라 파일에 저장할 수도 있습니다.

결론

Fabric은 서버 운영 상황을 자동으로 확인하고 보고서를 생성할 수 있는 강력한 도구입니다. 이를 통해 서버 관리를 더욱 효율적으로 할 수 있습니다.