Share via


Teljes Linux rendszerű virtuális gép létrehozása az Azure CLI-vel

A következőkre vonatkozik: ✔️ Linux rendszerű virtuális gépek

Ha gyorsan szeretne virtuális gépet (VM-et) létrehozni az Azure-ban, egyetlen Azure CLI-parancsot használhat, amely alapértelmezett értékeket használ a szükséges támogató erőforrások létrehozásához. A rendszer automatikusan létrehozza az olyan erőforrásokat, mint a virtuális hálózat, a nyilvános IP-cím és a hálózati biztonsági csoport szabályai. Ha éles környezetben szeretné jobban szabályozni a környezetet, előre létrehozhatja ezeket az erőforrásokat, majd hozzáadhatja hozzájuk a virtuális gépeket. Ez a cikk végigvezeti a virtuális gépek és a támogató erőforrások egyesével történő létrehozásán.

Győződjön meg arról, hogy telepítette a legújabb Azure CLI-t , és bejelentkezett egy Azure-fiókba az az login paranccsal.

Az alábbi példákban cserélje le a példaparaméterek nevét a saját értékeire. A példaparaméterek nevei közé tartozik a myResourceGroup, a myVnet és a myVM.

Erőforráscsoport létrehozása

Az Azure-erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. A virtuális gép előtt létre kell hozni egy erőforráscsoportot, és támogatni kell a virtuális hálózati erőforrásokat. Hozza létre az erőforráscsoportot az az group create paranccsal. Az alábbi példa egy myResourceGroup nevű erőforráscsoportot hoz létre az eastus helyen:

az group create --name myResourceGroup --location eastus

Alapértelmezés szerint az Azure CLI-parancsok kimenete JSON-ban (JavaScript Object Notation) van. Ha például az alapértelmezett kimenetet listára vagy táblára szeretné módosítani, használja az az config set core.output=table parancsot. Bármelyik parancshoz hozzáadhat --output egy egyszeri módosítást a kimeneti formátumban. Az alábbi példa a parancs JSON-kimenetét az group create mutatja be:

{
  "id": "/subscriptions/guid/resourceGroups/myResourceGroup",
  "location": "eastus",
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Virtuális hálózat és alhálózat létrehozása

Ezután létre fog hozni egy virtuális hálózatot az Azure-ban és egy alhálózatot, amelyben létrehozhatja a virtuális gépeket. Az az network vnet create paranccsal hozzon létre egy myVnet nevű virtuális hálózatot a 192.168.0.0/16 címelőtaggal. Egy mySubnet nevű alhálózatot is hozzáad a 192.168.1.0/24 címelőtaggal:

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

A kimenet azt mutatja, hogy az alhálózat logikailag jön létre a virtuális hálózaton belül:

{
  "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
}

Hozzon létre egy nyilvános IP-címet

Most hozzunk létre egy nyilvános IP-címet az az network public-ip create paranccsal. Ez a nyilvános IP-cím lehetővé teszi, hogy az internetről csatlakozzon a virtuális gépekhez. Mivel az alapértelmezett cím dinamikus, hozzon létre egy nevesített DNS-bejegyzést a --domain-name-label paraméterrel. Az alábbi példa létrehoz egy myPublicIP nevű nyilvános IP-címet a mypublicdns DNS-nevével. Mivel a DNS-névnek egyedinek kell lennie, adja meg a saját egyedi DNS-nevét:

az network public-ip create \
    --resource-group myResourceGroup \
    --name myPublicIP \
    --dns-name mypublicdns

Kimenet:

{
  "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"
  }
}

Hálózati biztonsági csoport létrehozása

A virtuális gépek bejövő és kimenő forgalmának szabályozásához alkalmazzon egy hálózati biztonsági csoportot egy virtuális hálózati adapterre vagy alhálózatra. Az alábbi példa az az network nsg create használatával hoz létre egy myNetworkSecurityGroup nevű hálózati biztonsági csoportot:

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

Olyan szabályokat definiálhat, amelyek engedélyezik vagy elutasítják az adott forgalmat. Ha engedélyezni szeretné a bejövő kapcsolatokat a 22-s porton ( az SSH-hozzáférés engedélyezéséhez hozzon létre egy bejövő szabályt az az network nsg rule create paranccsal. Az alábbi példa egy myNetworkSecurityGroupRuleSSH nevű szabályt hoz létre:

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRuleSSH \
    --protocol tcp \
    --priority 1000 \
    --destination-port-range 22 \
    --access allow

Ha engedélyezni szeretné a bejövő kapcsolatokat a 80-s porton (webes forgalom esetén), adjon hozzá egy másik hálózati biztonságicsoport-szabályt. Az alábbi példa egy myNetworkSecurityGroupRuleHTTP nevű szabályt hoz létre:

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name myNetworkSecurityGroupRuleWeb \
    --protocol tcp \
    --priority 1001 \
    --destination-port-range 80 \
    --access allow

Vizsgálja meg a hálózati biztonsági csoportot és szabályokat az az network nsg show paranccsal:

az network nsg show --resource-group myResourceGroup --name myNetworkSecurityGroup

Kimenet:

{
  "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"
}

Virtuális hálózati adapter létrehozása

A virtuális hálózati adapterek (NIC-k) programozott módon érhetők el, mert szabályok alkalmazhatók a használatukra. A virtuális gép méretétől függően több virtuális hálózati adaptert is csatlakoztathat egy virtuális géphez. Az alábbi az network nic create paranccsal létrehoz egy myNic nevű hálózati adaptert, és társítja azt a hálózati biztonsági csoporttal. A myPublicIP nyilvános IP-cím a virtuális hálózati adapterhez is társítva van.

az network nic create \
    --resource-group myResourceGroup \
    --name myNic \
    --vnet-name myVnet \
    --subnet mySubnet \
    --public-ip-address myPublicIP \
    --network-security-group myNetworkSecurityGroup

Kimenet:

{
  "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
  }
}

Rendelkezésre állási csoport létrehozása

A rendelkezésre állási csoportok segítenek a virtuális gépek tartalék tartományok közötti elosztásában és a tartományok frissítésében. Annak ellenére, hogy jelenleg csak egy virtuális gépet hoz létre, ajánlott rendelkezésre állási csoportokat használni a jövőbeli bővítés megkönnyítése érdekében.

A tartalék tartományok olyan virtuális gépek csoportosítását határozzák meg, amelyek közös áramforrással és hálózati kapcsolóval osztoznak. Alapértelmezés szerint a rendelkezésre állási csoportban konfigurált virtuális gépek legfeljebb három tartalék tartomány között vannak elkülönítve. Az egyik ilyen tartalék tartomány hardverhibája nem érinti az alkalmazást futtató összes virtuális gépet.

A frissítési tartományok olyan virtuális gépek csoportjait és mögöttes fizikai hardvereket jelölnek, amelyek egyszerre indíthatók újra. A tervezett karbantartás során előfordulhat, hogy a frissítési tartományok újraindításának sorrendje nem egymást követő, hanem egyszerre csak egy frissítési tartományt indít újra.

Az Azure automatikusan osztja el a virtuális gépeket a tartalék és frissítési tartományok között, amikor rendelkezésre állási csoportban helyezi őket el. További információ: A virtuális gépek rendelkezésre állásának kezelése.

Hozzon létre egy rendelkezésre állási csoportot a virtuális géphez az az vm availability-set create paranccsal. Az alábbi példa egy myAvailabilitySet nevű rendelkezésre állási csoportot hoz létre:

az vm availability-set create \
    --resource-group myResourceGroup \
    --name myAvailabilitySet

A kimenet megjegyzi a tartalék tartományokat és frissíti a tartományokat:

{
  "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": []
}

Virtuális gép létrehozása

Létrehozta a hálózati erőforrásokat az internetről elérhető virtuális gépek támogatásához. Most hozzon létre egy virtuális gépet, és biztonságossá tegye azt egy SSH-kulccsal. Ebben a példában hozzunk létre egy Ubuntu virtuális gépet a legutóbbi LTS alapján. További rendszerképeket az az vm image listával talál, az Azure-beli virtuálisgép-rendszerképek keresésével kapcsolatos szakaszban leírtak szerint.

Adjon meg egy hitelesítéshez használandó SSH-kulcsot. Ha nincs nyilvános SSH-kulcspárja, létrehozhatja őket , vagy a --generate-ssh-keys paraméter használatával létrehozhatja őket. Ha már rendelkezik kulcspárokkal, ez a paraméter a meglévő kulcsokat használja a fájlban ~/.ssh.

Hozza létre a virtuális gépet az összes erőforrás és információ az az vm create paranccsal való összefogásával. Az alábbi példa egy myVM nevű virtuális gépet hoz létre:

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --location eastus \
    --availability-set myAvailabilitySet \
    --nics myNic \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

SSH a virtuális géphez a nyilvános IP-cím létrehozásakor megadott DNS-bejegyzéssel. Ez fqdn a virtuális gép létrehozásakor jelenik meg a kimenetben:

{
  "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

Kimenet:

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:~$

Telepítheti az NGINX-et , és megtekintheti a virtuális gép felé áramló forgalmat. Telepítse az NGINX-et az alábbiak szerint:

sudo apt-get install -y nginx

Az alapértelmezett NGINX-webhely működés közbeni megtekintéséhez nyissa meg a webböngészőt, és adja meg a teljes tartománynevet:

Alapértelmezett NGINX-webhely a virtuális gépen

Exportálás sablonként

Mi a teendő, ha most egy további fejlesztési környezetet szeretne létrehozni ugyanazokkal a paraméterekkel, vagy egy olyan éles környezetet, amely megfelel neki? Resource Manager JSON-sablonokat használ, amelyek meghatározzák a környezet összes paraméterét. A JSON-sablonra hivatkozva teljes környezeteket hozhat létre. Létrehozhat JSON-sablonokat manuálisan , vagy exportálhat egy meglévő környezetet a JSON-sablon létrehozásához. Az az group export használatával exportálhatja az erőforráscsoportot az alábbiak szerint:

az group export --name myResourceGroup > myResourceGroup.json

Ez a parancs létrehozza a myResourceGroup.json fájlt az aktuális munkakönyvtárban. Amikor létrehoz egy környezetet ebből a sablonból, a rendszer az összes erőforrásnév megadását kéri. Ezeket a neveket feltöltheti a sablonfájlban úgy, hogy hozzáadja a --include-parameter-default-value paramétert a az group export parancshoz. Szerkessze a JSON-sablont az erőforrásnevek megadásához, vagy hozzon létre egy parameters.json fájlt , amely meghatározza az erőforrásneveket.

Ha a sablonból szeretne környezetet létrehozni, használja az az deployment group create parancsot az alábbiak szerint:

az deployment group create \
    --resource-group myNewResourceGroup \
    --template-file myResourceGroup.json

Érdemes lehet többet megtudni a sablonokból történő üzembe helyezésről. Megtudhatja, hogyan frissítheti növekményesen a környezeteket, hogyan használhatja a paraméterfájlt, és hogyan érheti el a sablonokat egyetlen tárolási helyről.

Következő lépések

Most már készen áll arra, hogy elkezdjen több hálózati összetevővel és virtuális géppel dolgozni. Ezzel a mintakörnyezettel az itt bemutatott alapvető összetevők használatával építheti ki az alkalmazást.