Azure 리소스 제어를 위한 파이썬 스크립트 작성하기

Azure는 클라우드 컴퓨팅 플랫폼으로서 다양한 리소스를 제공합니다. 이러한 리소스를 관리하고 제어하기 위해서는 파이썬 스크립트를 사용할 수 있습니다.

Azure SDK 설치하기

Azure 리소스를 제어하기 위해서는 Azure SDK를 설치해야 합니다. azure-mgmt 패키지와 각종 서비스에 대한 SDK를 설치할 수 있습니다.

pip install azure-mgmt

Azure 인증 설정하기

Azure에 액세스하기 위해서는 인증 설정이 필요합니다. Azure Portal에서 애플리케이션 등록 후 클라이언트 ID와 클라이언트 비밀을 얻어와서 사용할 수 있습니다.

from azure.common.credentials import ServicePrincipalCredentials

tenant_id = 'YOUR_TENANT_ID'
client_id = 'YOUR_CLIENT_ID'
client_secret = 'YOUR_CLIENT_SECRET'

credentials = ServicePrincipalCredentials(
    client_id=client_id,
    secret=client_secret,
    tenant=tenant_id
)

Azure 리소스 제어하기

파이썬 스크립트를 사용하여 Azure 리소스를 제어할 수 있습니다. 예를 들어 가상 머신을 생성하거나 삭제하는 작업을 수행할 수 있습니다.

from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.resource import ResourceManagementClient

subscription_id = 'YOUR_SUBSCRIPTION_ID'
resource_group_name = 'YOUR_RESOURCE_GROUP_NAME'
location = 'YOUR_LOCATION'
vm_name = 'YOUR_VM_NAME'

compute_client = ComputeManagementClient(credentials, subscription_id)
resource_client = ResourceManagementClient(credentials, subscription_id)

# 가상 머신 생성
async_vm_creation = compute_client.virtual_machines.create_or_update(
    resource_group_name,
    vm_name,
    {
        'location': location,
        'os_profile': {
            'computer_name': vm_name,
            'admin_username': 'azureuser',
            'admin_password': 'Password123!'
        },
        'hardware_profile': {
            'vm_size': 'Standard_DS1_v2'
        },
        'storage_profile': {
            'image_reference': {
                'publisher': 'Canonical',
                'offer': 'UbuntuServer',
                'sku': '18.04-LTS',
                'version': 'latest'
            },
            'os_disk': {
                'create_option': 'FromImage'
            }
        },
        'network_profile': {
            'network_interfaces': [{
                'id': '/subscriptions/' + subscription_id + '/resourceGroups/' + resource_group_name + '/providers/Microsoft.Network/networkInterfaces/' + vm_name + '-nic'
            }]
        }
    }
)

# 가상 머신 삭제
async_vm_deletion = compute_client.virtual_machines.delete(
    resource_group_name,
    vm_name
)

# 작업 완료 대기
async_vm_creation.wait()
async_vm_deletion.wait()

요약

이와 같이 파이썬 스크립트를 사용하여 Azure 리소스를 제어할 수 있습니다. Azure SDK와 인증 설정을 통해 다양한 작업을 수행할 수 있으며, 필요한 경우 공식 문서를 참조하여 자세한 내용을 확인할 수 있습니다.

참고 자료