리눅스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": "",
"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 실습
쿼리에 리소스명을 지정
리턴은 배열형태로 됨
값만 바로 나옴.
쿼리 이하는 작은따옴표로 싸준다
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"
]
배열리턴 대신 사전 형태로 가져오기는 { } 이용
그리고 원하는 이름 지정해서 같이 나오게 하려면 아래와 같이
쿼리 이하는 작은따옴표로 싸준다
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"
}
평면화 형태 출력 [ ] 이용
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
배열 필터링
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