리눅스VM생성 CLI

az vm create \
  --name myVM \
  --resource-group f7bb2bd5-d278-471d-8af3-ef4e9987bd42 \
  --image UbuntuLTS \
  --location eastus \
  --size Standard_DS2_v2 \
  --generate-ssh-keys
 
 
SSH key files '/home/onestx/.ssh/id_rsa' and '/home/onestx/.ssh/id_rsa.pub' have been generated under ~/.ssh to allow SSH access to the VM. If using machines without permanent storage, back up your keys to a safe location.
 

생성결과

{
  "fqdns": "",
  "id": "/subscriptions/a01e3ec6-836c-4dc6-8597-cca20f8163ce/resourceGroups/f7bb2bd5-d278-471d-8af3-ef4e9987bd42/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-4F-8E-8A",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "23.96.119.131",
  "resourceGroup": "f7bb2bd5-d278-471d-8af3-ef4e9987bd42",
  "zones": ""
}
 

Nginx 무료오픈소스 웹서버

az vm extension set \
  --resource-group f7bb2bd5-d278-471d-8af3-ef4e9987bd42 \
  --vm-name myVM \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --protected-settings '{"commandToExecute": "./configure-nginx.sh"}'
 
 

Sh 스크립트 내용

#!/bin/bash

# Update apt cache.
sudo apt-get update

# Install Nginx.
sudo apt-get install -y nginx

# Set the home page.
echo "<html><body><h2>Welcome to Azure! My name is $(hostname).</h2></body></html>" | sudo tee -a /var/www/html/index.html

 

VM 방화벽 포트 오픈

az vm open-port \
  --name myVM \
  --resource-group f7bb2bd5-d278-471d-8af3-ef4e9987bd42 \
  --port 80
 

PIP 쿼리해보기

az vm show \
  --name myVM \
  --resource-group f7bb2bd5-d278-471d-8af3-ef4e9987bd42 \
  --show-details \
  --query [publicIps] \
  --output tsv




AZ CLI + JMESPath 실습

 
  1. 쿼리에 리소스명을 지정
리턴은 배열형태로
값만 바로 나옴.
쿼리 이하는 작은따옴표로 싸준다
JMESPath 쿼리 라 한단다….
az vm show -g QueryDemo -n TestVM --query '[name, osProfile.adminUsername, osProfile.linuxConfiguration.ssh.publicKeys[0].keyData]' -o json
 
[
  "TestVM",
  "azureuser",
  "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso"
]
 
  1. 배열리턴 대신 사전 형태로 가져오기는 { } 이용
그리고 원하는 이름 지정해서 같이 나오게 하려면 아래와 같이
쿼리 이하는 작은따옴표로 싸준다
az vm show -g QueryDemo -n TestVM --query '{VMName:name, admin:osProfile.adminUsername, sshKey:osProfile.linuxConfiguration.ssh.publicKeys[0].keyData }' -o json
 
 
{
  "VMName": "TestVM",
  "admin": "azureuser",
  "ssh-key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMobZNJTqgjWn/IB5xlilvE4Y+BMYpqkDnGRUcA0g9BYPgrGSQquCES37v2e3JmpfDPHFsaR+CPKlVr2GoVJMMHeRcMJhj50ZWq0hAnkJBhlZVWy8S7dwdGAqPyPmWM2iJDCVMVrLITAJCno47O4Ees7RCH6ku7kU86b1NOanvrNwqTHr14wtnLhgZ0gQ5GV1oLWvMEVg1YFMIgPRkTsSQKWCG5lLqQ45aU/4NMJoUxGyJTL9i8YxMavaB1Z2npfTQDQo9+womZ7SXzHaIWC858gWNl9e5UFyHDnTEDc14hKkf1CqnGJVcCJkmSfmrrHk/CkmF0ZT3whTHO1DhJTtV stramer@contoso"
}
 
  1. 평면화 형태 출력 [ ] 이용
az vm list -g QueryDemo --query '[].{Name:name, OS:storageProfile.osDisk.osType, admin:osProfile.adminUsername}' -o json
 
아래와 같은 형태 리턴
[
  {
    "Name": "Test-2",
    "OS": "Linux",
    "admin": "sttramer"
  },
  {
    "Name": "TestVM",
    "OS": "Linux",
    "admin": "azureuser"
  },
  {
    "Name": "WinTest",
    "OS": "Windows",
    "admin": "winadmin"
  }
]
 

--테이블 형태 output 하면

az vm list -g QueryDemo --query '[].{Name:name, OS:storageProfile.osDisk.osType, Admin:osProfile.adminUsername}' --output table
 
Name     OS       Admin
-------  -------  ---------
Test-2   Linux    sttramer
TestVM   Linux    azureuser
WinTest  Windows  winadmin
 
 
  1. 배열 필터링
az vm list -g QueryDemo --query "[?storageProfile.osDisk.osType=='Linux'].{Name:name,  admin:osProfile.adminUsername}" --output table
 
 

크기조정

az vm resize \
  --resource-group f7bb2bd5-d278-471d-8af3-ef4e9987bd42 \
  --name myVM \
  --size Standard_DS3_v2
 
VM중단은 필수



실제로 1 정도 중단됨
서비스 자동 구동됨.



크기조정된 잘되었는지 , VM 타입 조회
az vm show \
  --resource-group f7bb2bd5-d278-471d-8af3-ef4e9987bd42 \
  --name myVM \
  --query "hardwareProfile" \
  --output tsv
 
 





+ Recent posts