[파이썬] 리눅스 서버 환경 설정 및 관리 스크립트

리눅스 서버 환경 설정과 관리는 많은 시간과 노력이 필요한 작업입니다. 이러한 작업을 보다 효율적으로 수행하기 위해서는 자동화된 스크립트를 이용하는 것이 좋습니다. Python은 이러한 스크립팅 언어로서 리눅스 서버 환경 설정 및 관리를 위한 많은 도구와 라이브러리를 제공합니다. 이번 포스트에서는 Python을 사용하여 리눅스 서버 환경 설정 및 관리 스크립트를 작성하는 방법에 대해 알아보겠습니다.

1. 리눅스 서버 설정

서버 설정은 운영체제, 네트워크, 보안 등 다양한 영역에서 이루어지는 작업입니다. Python을 사용하여 다음과 같은 작업을 자동화할 수 있습니다.

import os

def install_packages(packages):
    os.system(f"apt-get install {' '.join(packages)}")

def create_user(username, password):
    os.system(f"useradd -m {username}")
    os.system(f"echo {password} | passwd {username} --stdin")

def set_network_config(ip, subnet, gateway):
    network_config = f"""
    DEVICE=eth0
    BOOTPROTO=static
    IPADDR={ip}
    NETMASK={subnet}
    GATEWAY={gateway}
    ONBOOT=yes
    """

    with open("/etc/sysconfig/network-scripts/ifcfg-eth0", "w") as file:
        file.write(network_config)

def set_firewall_rules():
    os.system("iptables -A INPUT -p tcp --dport 22 -j ACCEPT")

def manage_logs():
    os.system("tail -f /var/log/syslog")

위의 예제 코드는 리눅스 서버 설정을 자동화하기 위한 간단한 함수들을 보여줍니다. 이러한 함수들을 조합하여 서버 설정 작업을 자동화할 수 있습니다.

2. 스크립트 실행 및 관리

위에서 작성한 스크립트를 실행하고 관리하기 위해, Python의 argparse 모듈을 이용할 수 있습니다. argparse 모듈을 사용하여 명령행 인자를 처리하고, 각각의 작업에 대한 함수를 실행하는 기능을 추가할 수 있습니다.

import argparse

def parse_args():
    parser = argparse.ArgumentParser(description="리눅스 서버 환경 설정 및 관리 스크립트")
    subparsers = parser.add_subparsers(title="명령어", dest="command")

    # 서버 설정 명령어 추가
    parser_config = subparsers.add_parser("config", help="서버 설정")
    parser_config.add_argument("--packages", nargs="+", help="설치할 패키지 리스트")

    # 로그 관리 명령어 추가
    parser_logs = subparsers.add_parser("logs", help="서버 로그 관리")

    args = parser.parse_args()
    return args

def main():
    args = parse_args()

    if args.command == "config":
        if args.packages:
            install_packages(args.packages)
    elif args.command == "logs":
        manage_logs()

if __name__ == "__main__":
    main()

위의 예제 코드는 argparse 모듈을 사용하여 “config”와 “logs” 두 가지 명령어를 처리할 수 있도록 구현한 스크립트입니다. 명령행으로 전달된 인자에 따라 해당하는 작업을 수행합니다.

3. 스크립트 실행

다음은 위에서 작성한 스크립트를 사용해 리눅스 서버 설정과 관리 작업을 수행하는 몇 가지 예시입니다.

$ python script.py config --packages package1 package2 package3
$ python script.py logs

결론

Python을 사용하여 리눅스 서버 환경 설정 및 관리 스크립트를 작성하면 작업을 보다 효율적으로 수행할 수 있습니다. 이를테면 시간과 노력을 절약하고, 반복적인 작업을 자동화할 수 있습니다. 리눅스 서버 관리 작업을 자동화하는 방법을 익혀두면 서버 관리에 있어서 더욱 효율적인 작업을 수행할 수 있습니다.