Azure CLI ile eksiksiz bir Linux sanal makinesi oluşturma
Şunlar için geçerlidir: ✔️ Linux VM'leri
Azure'da hızla bir sanal makine (VM) oluşturmak için, gerekli destekleyici kaynakları oluşturmak için varsayılan değerleri kullanan tek bir Azure CLI komutu kullanabilirsiniz. Sanal ağ, genel IP adresi ve ağ güvenlik grubu kuralları gibi kaynaklar otomatik olarak oluşturulur. Üretim kullanımında ortamınızın daha fazla denetimi için bu kaynakları önceden oluşturabilir ve ardından VM'lerinizi bunlara ekleyebilirsiniz. Bu makale, vm ve destekleyici kaynakların her birini tek tek oluşturma konusunda size yol gösterir.
En son Azure CLI'yi yüklediğinizden ve az login ile bir Azure hesabında oturum açtığınızdan emin olun.
Aşağıdaki örneklerde, örnek parametre adlarını kendi değerlerinizle değiştirin. Örnek parametre adları myResourceGroup, myVnet ve myVM'dir.
Kaynak grubu oluştur
Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Bir sanal makine ve destekleyici sanal ağ kaynakları öncesinde bir kaynak grubu oluşturulmalıdır. az group create ile kaynak grubunu oluşturun. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur:
az group create --name myResourceGroup --location eastus
Varsayılan olarak, Azure CLI komutlarının çıkışı JSON (JavaScript Nesne Gösterimi) şeklindedir. Varsayılan çıkışı bir liste veya tabloyla değiştirmek için, örneğin az config set core.output=table komutunu kullanın. Çıkış biçiminde bir kerelik değişiklik için herhangi bir komuta da ekleyebilirsiniz --output
. Aşağıdaki örnekte komutundan JSON çıkışı gösterilmektedir az group create
:
{
"id": "/subscriptions/guid/resourceGroups/myResourceGroup",
"location": "eastus",
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Sanal ağ ve alt ağ oluşturma
Ardından Azure'da bir sanal ağ ve vm'lerinizi oluşturabileceğiniz bir alt ağ oluşturursunuz. 192.168.0.0/16 adres ön eki ile myVnet adlı bir sanal ağ oluşturmak için az network vnet create komutunu kullanın. Ayrıca adres ön eki 192.168.1.0/24 olan mySubnet adlı bir alt ağ da eklersiniz:
az network vnet create \
--resource-group myResourceGroup \
--name myVnet \
--address-prefix 192.168.0.0/16 \
--subnet-name mySubnet \
--subnet-prefix 192.168.1.0/24
Çıktı, alt ağın sanal ağ içinde mantıksal olarak oluşturulduğunu gösterir:
{
"addressSpace": {
"addressPrefixes": [
"192.168.0.0/16"
]
},
"dhcpOptions": {
"dnsServers": []
},
"etag": "W/\"e95496fc-f417-426e-a4d8-c9e4d27fc2ee\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet",
"location": "eastus",
"name": "myVnet",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"resourceGuid": "ed62fd03-e9de-430b-84df-8a3b87cacdbb",
"subnets": [
{
"addressPrefix": "192.168.1.0/24",
"etag": "W/\"e95496fc-f417-426e-a4d8-c9e4d27fc2ee\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet",
"ipConfigurations": null,
"name": "mySubnet",
"networkSecurityGroup": null,
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"resourceNavigationLinks": null,
"routeTable": null
}
],
"tags": {},
"type": "Microsoft.Network/virtualNetworks",
"virtualNetworkPeerings": null
}
Genel IP adresi oluşturma
Şimdi az network public-ip create ile bir genel IP adresi oluşturalım. Bu genel IP adresi, sanal makinelerinize İnternet'ten bağlanmanızı sağlar. Varsayılan adres dinamik olduğundan parametresiyle --domain-name-label
adlandırılmış bir DNS girişi oluşturun. Aşağıdaki örnek, mypublicdns DNS adıyla myPublicIP adlı bir genel IP oluşturur. DNS adının benzersiz olması gerektiğinden, kendi benzersiz DNS adınızı belirtin:
az network public-ip create \
--resource-group myResourceGroup \
--name myPublicIP \
--dns-name mypublicdns
Çıktı:
{
"publicIp": {
"dnsSettings": {
"domainNameLabel": "mypublicdns",
"fqdn": "mypublicdns.eastus.cloudapp.azure.com",
"reverseFqdn": null
},
"etag": "W/\"2632aa72-3d2d-4529-b38e-b622b4202925\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP",
"idleTimeoutInMinutes": 4,
"ipAddress": null,
"ipConfiguration": null,
"location": "eastus",
"name": "myPublicIP",
"provisioningState": "Succeeded",
"publicIpAddressVersion": "IPv4",
"publicIpAllocationMethod": "Dynamic",
"resourceGroup": "myResourceGroup",
"resourceGuid": "4c65de38-71f5-4684-be10-75e605b3e41f",
"tags": null,
"type": "Microsoft.Network/publicIPAddresses"
}
}
Ağ güvenlik grubu oluşturma
VM'lerinize gelen ve giden trafik akışını denetlemek için sanal NIC'ye veya alt ağa bir ağ güvenlik grubu uygulayın. Aşağıdaki örnekte az network nsg create kullanılarak myNetworkSecurityGroup adlı bir ağ güvenlik grubu oluşturulur:
az network nsg create \
--resource-group myResourceGroup \
--name myNetworkSecurityGroup
Belirli trafiğe izin veren veya trafiği reddeden kurallar tanımlarsınız. 22 numaralı bağlantı noktasında gelen bağlantılara izin vermek için (SSH erişimini etkinleştirmek için az network nsg rule create ile bir gelen kuralı oluşturun. Aşağıdaki örnek myNetworkSecurityGroupRuleSSH adlı bir kural oluşturur:
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNetworkSecurityGroup \
--name myNetworkSecurityGroupRuleSSH \
--protocol tcp \
--priority 1000 \
--destination-port-range 22 \
--access allow
80 numaralı bağlantı noktasında (web trafiği için) gelen bağlantılara izin vermek için başka bir ağ güvenlik grubu kuralı ekleyin. Aşağıdaki örnek myNetworkSecurityGroupRuleHTTP adlı bir kural oluşturur:
az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNetworkSecurityGroup \
--name myNetworkSecurityGroupRuleWeb \
--protocol tcp \
--priority 1001 \
--destination-port-range 80 \
--access allow
az network nsg show ile ağ güvenlik grubunu ve kurallarını inceleyin:
az network nsg show --resource-group myResourceGroup --name myNetworkSecurityGroup
Çıktı:
{
"defaultSecurityRules": [
{
"access": "Allow",
"description": "Allow inbound traffic from all VMs in VNET",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "*",
"direction": "Inbound",
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowVnetInBound",
"name": "AllowVnetInBound",
"priority": 65000,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "VirtualNetwork",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": "Allow inbound traffic from azure load balancer",
"destinationAddressPrefix": "*",
"destinationPortRange": "*",
"direction": "Inbound",
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowAzureLoadBalancerInBou",
"name": "AllowAzureLoadBalancerInBound",
"priority": 65001,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "AzureLoadBalancer",
"sourcePortRange": "*"
},
{
"access": "Deny",
"description": "Deny all inbound traffic",
"destinationAddressPrefix": "*",
"destinationPortRange": "*",
"direction": "Inbound",
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/DenyAllInBound",
"name": "DenyAllInBound",
"priority": 65500,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": "Allow outbound traffic from all VMs to all VMs in VNET",
"destinationAddressPrefix": "VirtualNetwork",
"destinationPortRange": "*",
"direction": "Outbound",
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowVnetOutBound",
"name": "AllowVnetOutBound",
"priority": 65000,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "VirtualNetwork",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": "Allow outbound traffic from all VMs to Internet",
"destinationAddressPrefix": "Internet",
"destinationPortRange": "*",
"direction": "Outbound",
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/AllowInternetOutBound",
"name": "AllowInternetOutBound",
"priority": 65001,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
},
{
"access": "Deny",
"description": "Deny all outbound traffic",
"destinationAddressPrefix": "*",
"destinationPortRange": "*",
"direction": "Outbound",
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/defaultSecurityRules/DenyAllOutBound",
"name": "DenyAllOutBound",
"priority": 65500,
"protocol": "*",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
}
],
"etag": "W/\"3371b313-ea9f-4687-a336-a8ebdfd80523\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup",
"location": "eastus",
"name": "myNetworkSecurityGroup",
"networkInterfaces": null,
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"resourceGuid": "47a9964e-23a3-438a-a726-8d60ebbb1c3c",
"securityRules": [
{
"access": "Allow",
"description": null,
"destinationAddressPrefix": "*",
"destinationPortRange": "22",
"direction": "Inbound",
"etag": "W/\"9e344b60-0daa-40a6-84f9-0ebbe4a4b640\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/securityRules/myNetworkSecurityGroupRuleSSH",
"name": "myNetworkSecurityGroupRuleSSH",
"priority": 1000,
"protocol": "Tcp",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
},
{
"access": "Allow",
"description": null,
"destinationAddressPrefix": "*",
"destinationPortRange": "80",
"direction": "Inbound",
"etag": "W/\"9e344b60-0daa-40a6-84f9-0ebbe4a4b640\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup/securityRules/myNetworkSecurityGroupRuleWeb",
"name": "myNetworkSecurityGroupRuleWeb",
"priority": 1001,
"protocol": "Tcp",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sourceAddressPrefix": "*",
"sourcePortRange": "*"
}
],
"subnets": null,
"tags": null,
"type": "Microsoft.Network/networkSecurityGroups"
}
Sanal NIC oluşturma
Sanal ağ arabirim kartları (NIC' ler) program aracılığıyla kullanılabilir çünkü kullanımlarına kurallar uygulayabilirsiniz. VM boyutuna bağlı olarak, vm'ye birden çok sanal NIC ekleyebilirsiniz. Aşağıdaki az network nic create komutunda myNic adlı bir NIC oluşturur ve bunu ağ güvenlik grubunuzla ilişkilendirirsiniz. myPublicIP genel IP adresi de sanal NIC ile ilişkilendirilir.
az network nic create \
--resource-group myResourceGroup \
--name myNic \
--vnet-name myVnet \
--subnet mySubnet \
--public-ip-address myPublicIP \
--network-security-group myNetworkSecurityGroup
Çıktı:
{
"NewNIC": {
"dnsSettings": {
"appliedDnsServers": [],
"dnsServers": [],
"internalDnsNameLabel": null,
"internalDomainNameSuffix": "brqlt10lvoxedgkeuomc4pm5tb.bx.internal.cloudapp.net",
"internalFqdn": null
},
"enableAcceleratedNetworking": false,
"enableIpForwarding": false,
"etag": "W/\"04b5ab44-d8f4-422a-9541-e5ae7de8466d\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
"ipConfigurations": [
{
"applicationGatewayBackendAddressPools": null,
"etag": "W/\"04b5ab44-d8f4-422a-9541-e5ae7de8466d\"",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic/ipConfigurations/ipconfig1",
"loadBalancerBackendAddressPools": null,
"loadBalancerInboundNatRules": null,
"name": "ipconfig1",
"primary": true,
"privateIpAddress": "192.168.1.4",
"privateIpAddressVersion": "IPv4",
"privateIpAllocationMethod": "Dynamic",
"provisioningState": "Succeeded",
"publicIpAddress": {
"dnsSettings": null,
"etag": null,
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIP",
"idleTimeoutInMinutes": null,
"ipAddress": null,
"ipConfiguration": null,
"location": null,
"name": null,
"provisioningState": null,
"publicIpAddressVersion": null,
"publicIpAllocationMethod": null,
"resourceGroup": "myResourceGroup",
"resourceGuid": null,
"tags": null,
"type": null
},
"resourceGroup": "myResourceGroup",
"subnet": {
"addressPrefix": null,
"etag": null,
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet",
"ipConfigurations": null,
"name": null,
"networkSecurityGroup": null,
"provisioningState": null,
"resourceGroup": "myResourceGroup",
"resourceNavigationLinks": null,
"routeTable": null
}
}
],
"location": "eastus",
"macAddress": null,
"name": "myNic",
"networkSecurityGroup": {
"defaultSecurityRules": null,
"etag": null,
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNetworkSecurityGroup",
"location": null,
"name": null,
"networkInterfaces": null,
"provisioningState": null,
"resourceGroup": "myResourceGroup",
"resourceGuid": null,
"securityRules": null,
"subnets": null,
"tags": null,
"type": null
},
"primary": null,
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"resourceGuid": "b3dbaa0e-2cf2-43be-a814-5cc49fea3304",
"tags": null,
"type": "Microsoft.Network/networkInterfaces",
"virtualMachine": null
}
}
Kullanılabilirlik kümesi oluşturma
Kullanılabilirlik kümeleri, VM'lerinizi hata etki alanlarına ve güncelleştirme etki alanlarına yaymaya yardımcı olur. Şu anda yalnızca bir VM oluştursanız da, gelecekte genişletmeyi kolaylaştırmak için kullanılabilirlik kümelerini kullanmak en iyi yöntemdir.
Hata etki alanları, ortak bir güç kaynağını ve ağ anahtarını paylaşan bir sanal makine grubunu tanımlar. Varsayılan olarak, kullanılabilirlik kümenizde yapılandırılan sanal makineler en fazla üç hata etki alanı arasında ayrılır. Bu hata etki alanlarından birinde oluşan bir donanım sorunu, uygulamanızı çalıştıran tüm VM'leri etkilemez.
Güncelleştirme etki alanları, aynı anda yeniden başlatılabilen sanal makine gruplarını ve temel alınan fiziksel donanımları gösterir. Planlı bakım sırasında, güncelleştirme etki alanlarının yeniden başlatılma sırası sıralı olmayabilir, ancak aynı anda yalnızca bir güncelleştirme etki alanı yeniden başlatılır.
Azure, vm'leri bir kullanılabilirlik kümesine yerleştirirken hata ve güncelleştirme etki alanlarına otomatik olarak dağıtır. Daha fazla bilgi için bkz . VM'lerin kullanılabilirliğini yönetme.
az vm availability-set create ile VM'niz için bir kullanılabilirlik kümesi oluşturun. Aşağıdaki örnek myAvailabilitySet adında bir kullanılabilirlik kümesi oluşturur:
az vm availability-set create \
--resource-group myResourceGroup \
--name myAvailabilitySet
Çıkışta hata etki alanları ve güncelleştirme etki alanları not edilir:
{
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAvailabilitySet",
"location": "eastus",
"managed": null,
"name": "myAvailabilitySet",
"platformFaultDomainCount": 2,
"platformUpdateDomainCount": 5,
"resourceGroup": "myResourceGroup",
"sku": {
"capacity": null,
"managed": true,
"tier": null
},
"statuses": null,
"tags": {},
"type": "Microsoft.Compute/availabilitySets",
"virtualMachines": []
}
VM oluşturma
İnternet'e erişilebilir VM'leri desteklemek için ağ kaynaklarını oluşturdunuz. Şimdi bir VM oluşturun ve bunu bir SSH anahtarıyla güvenli bir şekilde sağlayın. Bu örnekte, en son LTS'yi temel alan bir Ubuntu VM oluşturalım. Azure VM görüntülerini bulma bölümünde açıklandığı gibi az vm image list ile ek görüntüler bulabilirsiniz.
Kimlik doğrulaması için kullanılacak bir SSH anahtarı belirtin. SSH ortak anahtar çifti yoksa, bunları oluşturabilir veya sizin için oluşturmak için parametresini --generate-ssh-keys
kullanabilirsiniz. Zaten bir anahtar çifti varsa, bu parametre içinde ~/.ssh
var olan anahtarları kullanır.
Az vm create komutuyla tüm kaynakları ve bilgileri bir araya getirerek VM'yi oluşturun . Aşağıdaki örnek myVM adlı bir VM oluşturur:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--location eastus \
--availability-set myAvailabilitySet \
--nics myNic \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Genel IP adresini oluştururken sağladığınız DNS girişiyle VM'nize SSH. Bu fqdn
, vm'nizi oluştururken çıktıda gösterilir:
{
"fqdns": "mypublicdns.eastus.cloudapp.azure.com",
"id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus",
"macAddress": "00-0D-3A-13-71-C8",
"powerState": "VM running",
"privateIpAddress": "192.168.1.5",
"publicIpAddress": "13.90.94.252",
"resourceGroup": "myResourceGroup"
}
ssh azureuser@mypublicdns.eastus.cloudapp.azure.com
Çıktı:
The authenticity of host 'mypublicdns.eastus.cloudapp.azure.com (13.90.94.252)' can't be established.
ECDSA key fingerprint is SHA256:SylINP80Um6XRTvWiFaNz+H+1jcrKB1IiNgCDDJRj6A.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mypublicdns.eastus.cloudapp.azure.com,13.90.94.252' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.11.0-1016-azure x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
https://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
azureuser@myVM:~$
NGINX'i yükleyebilir ve VM'ye giden trafik akışını görebilirsiniz. NGINX'i aşağıdaki gibi yükleyin:
sudo apt-get install -y nginx
Varsayılan NGINX sitesini uygulamada görmek için web tarayıcınızı açın ve FQDN'nizi girin:
Şablon olarak dışarı aktarma
Şimdi aynı parametrelere sahip ek bir geliştirme ortamı veya onunla eşleşen bir üretim ortamı oluşturmak istiyorsanız ne olacak? Resource Manager, ortamınız için tüm parametreleri tanımlayan JSON şablonlarını kullanır. Bu JSON şablonuna başvurarak ortamların tamamını oluşturursunuz. JSON şablonlarını el ile oluşturabilir veya mevcut bir ortamı dışarı aktararak sizin için JSON şablonunu oluşturabilirsiniz. Kaynak grubunuzu aşağıdaki gibi dışarı aktarmak için az group export komutunu kullanın:
az group export --name myResourceGroup > myResourceGroup.json
Bu komut, myResourceGroup.json
dosyayı geçerli çalışma dizininizde oluşturur. Bu şablondan bir ortam oluşturduğunuzda, tüm kaynak adları istenir. Parametresini az group export
komutuna ekleyerek --include-parameter-default-value
şablon dosyanızda bu adları doldurabilirsiniz. Kaynak adlarını belirtmek için JSON şablonunuzu düzenleyin veya kaynak adlarını belirten bir parameters.json dosyası oluşturun.
Şablonunuzdan ortam oluşturmak için az deployment group create komutunu aşağıdaki gibi kullanın:
az deployment group create \
--resource-group myNewResourceGroup \
--template-file myResourceGroup.json
Şablonlardan dağıtma hakkında daha fazla bilgi edinmek isteyebilirsiniz. Ortamları artımlı olarak güncelleştirme, parametre dosyasını kullanma ve şablonlara tek bir depolama konumundan erişme hakkında bilgi edinin.
Sonraki adımlar
Artık birden çok ağ bileşeni ve VM ile çalışmaya başlamaya hazırsınız. Burada sunulan temel bileşenleri kullanarak uygulamanızı oluşturmak için bu örnek ortamı kullanabilirsiniz.