[python] Fabric으로 여러 서버에 동시에 명령 실행하기

Fabric은 파이썬 기반의 배포 자동화 도구로, 여러 서버에 대한 작업을 쉽게 수행할 수 있습니다. 이번 포스트에서는 Fabric을 사용하여 여러 서버에 동시에 명령을 실행하는 방법에 대해 알아보겠습니다.

필요한 패키지 설치하기

먼저 Fabric을 사용하기 위해 필요한 패키지를 설치해야 합니다. 아래 명령을 터미널에서 실행하여 설치하세요.

pip install fabric

Fabric으로 여러 서버에 동시에 명령 실행하기

Fabric을 설치한 후에는 다음과 같은 방법으로 여러 서버에 동시에 명령을 실행할 수 있습니다.

from fabric import Connection

# 접속할 서버의 정보 설정
hosts = ['server1@example.com', 'server2@example.com']
user = 'myuser'
password = 'mypassword'

# Fabric 연결 객체 생성
connections = [Connection(host, user=user, connect_kwargs={'password': password}) for host in hosts]

# 동시에 명령 실행
for connection in connections:
    result = connection.run('ls -l')
    print(f"Output from {connection.host}:")
    print(result.stdout.strip())
    print("=" * 50)

위 코드에서는 Fabric의 Connection 클래스를 사용하여 여러 서버에 대한 연결 객체를 생성하고, run 메서드를 통해 명령을 실행합니다. 각 서버의 결과는 stdout 속성을 통해 확인할 수 있습니다.

실행 결과는 각 서버의 결과를 순차적으로 출력합니다.

결론

Fabric을 사용하면 여러 서버에 동시에 명령을 실행할 수 있어, 작업의 효율성을 크게 향상시킬 수 있습니다. 이를 통해 서버 관리 작업을 효과적으로 처리할 수 있습니다.

더 자세한 내용은 Fabric 공식 문서를 참고하세요.