You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
who_is_this_for: This is an introductory topic for developers and DevOps engineers who want to automate the deployment of Arm-based Cobalt 100 virtual machines using Azure Resource Manager templates.
6
+
who_is_this_for: This is an introductory topic for developers and DevOps engineers who want to automate the deployment of Arm-based Azure Cobalt 100 virtual machines using Azure Resource Manager templates.
11
7
12
8
learning_objectives:
13
-
- Understand Azure Resource Manager template structure and syntax
14
-
- Create a Azure Resource Manager template for deploying Cobalt 100 virtual machines
15
-
- Deploy an Arm-based Linux VM using the template with Azure CLI
16
-
- Configure SSH authentication for secure access
9
+
- Structure an Azure Resource Manager template with parameters, variables, and resources
10
+
- Specify Arm64 architecture and Cobalt 100 Azure VM sizes
11
+
- Deploy the template using Azure CLI and verify the deployment
12
+
- Connect to your Cobalt 100 VM and validate the Arm64 architecture
17
13
18
14
prerequisites:
19
-
- A Microsoft Azure account with permissions to create virtual machines and resource groups
15
+
- An Azure subscription with permissions to create resource groups, virtual machines, and networking resources
16
+
- Azure CLI installed on your local machine - see the [Azure CLI install guide](/install-guides/azure-cli/)
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/azure-arm-template/create-template.md
+17-22Lines changed: 17 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,21 @@
1
1
---
2
-
title: Create the Resource Manager template
2
+
title: Create the Azure Resource Manager template
3
3
weight: 3
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
## Azure Resource Manager template structure
9
+
## Understand the Azure Resource Manager template structure
10
10
11
-
An Azure Resource Manager template consists of several key sections:
11
+
An Azure Resource Manager template is a JSON file organized into six sections:
12
+
-`$schema`: defines the template language version
13
+
-`contentVersion`: your template's version number
14
+
-`parameters`: input values that customize the deployment
15
+
-`variables`: computed values used throughout the template
16
+
-`resources`: Azure resources to create
17
+
-`outputs`: values returned after deployment
12
18
13
-
-**$schema**: Defines the template language version
14
-
-**contentVersion**: Your template's version number
15
-
-**parameters**: Input values that customize the deployment
16
-
-**variables**: Computed values used throughout the template
17
-
-**resources**: Azure resources to create
18
-
-**outputs**: Values returned after deployment
19
19
20
20
## Create the template file
21
21
@@ -253,19 +253,13 @@ Create a new file named `cobalt-vm-template.json` on your local machine. This te
253
253
254
254
## Key template elements for Cobalt 100
255
255
256
-
The template includes several Arm-specific configurations:
256
+
The template includes several Arm-specific configurations.
257
257
258
-
**VM size**: The `vmSize` parameter defaults to `Standard_D4ps_v6`, which is part of the Dpsv6 series powered by Cobalt 100 processors. This series provides:
259
-
- Four vCPUs
260
-
- General-purpose compute capabilities
261
-
- Arm64 architecture
258
+
**VM size**: The `vmSize` parameter defaults to `Standard_D4ps_v6`, part of the Dpsv6 series powered by Cobalt 100 processors. The D4ps_v6 size provides four vCPUs with general-purpose compute capabilities on Arm64 architecture.
262
259
263
-
Other Cobalt 100 VM sizes include:
264
-
-`Standard_D2ps_v6` (2 vCPUs)
265
-
-`Standard_D8ps_v6` (8 vCPUs)
266
-
-`Standard_D16ps_v6` (16 vCPUs)
260
+
Other available Cobalt 100 VM sizes include `Standard_D2ps_v6` (two vCPUs), `Standard_D8ps_v6` (8 vCPUs), and `Standard_D16ps_v6` (16 vCPUs).
267
261
268
-
**Image reference**: The `storageProfile` section specifies the operating system image with Arm64 architecture. You can choose from various Arm64-compatible Linux distributions available in Azure. The template uses Ubuntu 24.04 LTS:
262
+
**Image reference**: The `storageProfile` section specifies the operating system image with Arm64 architecture. The template uses Ubuntu 24.04 LTS:
269
263
270
264
```json
271
265
"imageReference": {
@@ -276,8 +270,7 @@ Other Cobalt 100 VM sizes include:
276
270
}
277
271
```
278
272
279
-
You can change the Arm64 image used in the `imageReference` section, for example:
280
-
for Ubuntu 22.04 LTS:
273
+
You can change the Arm64 image used in the `imageReference` section. For Ubuntu 22.04 LTS:
281
274
```json
282
275
"imageReference": {
283
276
"publisher": "Canonical",
@@ -310,4 +303,6 @@ az vm image list --all --architecture Arm64 --output table
310
303
311
304
## What you've accomplished and what's next
312
305
313
-
You've created a complete Resource Manager template that defines the network infrastructure (virtual network, subnet, and network security groups), a public IP address for external access, a network interface, a Cobalt 100 VM with Ubuntu 24.04 LTS, and SSH key authentication for secure access. The template uses parameters for flexibility, allowing you to customize the deployment without modifying the template structure. In the next section, you'll deploy this template to Azure and connect to your new Cobalt 100 VM.
306
+
You've created a complete Resource Manager template that defines network infrastructure, a Cobalt 100 VM with Ubuntu 24.04 LTS, and SSH key authentication. The template uses parameters for flexibility, allowing you to customize deployments without modifying the template structure.
307
+
308
+
Next, you'll deploy this template to Azure and connect to your new Cobalt 100 VM.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/azure-arm-template/deploy-template.md
+10-7Lines changed: 10 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Deploy the template
2
+
title: Deploy the Azure Resource Manager template
3
3
weight: 4
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -14,12 +14,13 @@ Azure Resource Manager templates deploy resources into a resource group. Create
14
14
az group create --name cobalt-rg --location eastus
15
15
```
16
16
17
-
Replace `eastus` with your preferred Azure region. To see available regions that support Cobalt 100 VMs, run:
17
+
Replace `eastus` with your preferred Azure region. To see available regions that support Cobalt 100 VMs, query Azure for VM SKUs and filter for the Dpsv6 series:
18
18
19
19
```bash
20
20
az vm list-skus --location eastus --size Standard_D --all --output table | grep "ps_v6"
21
21
```
22
-
The output will look like:
22
+
23
+
The output is similar to:
23
24
```output
24
25
virtualMachines eastus Standard_D16ps_v6 2,3 None
25
26
virtualMachines eastus Standard_D2ps_v6 2,3 None
@@ -107,15 +108,15 @@ az deployment group show \
107
108
--query properties.provisioningState
108
109
```
109
110
110
-
The output displays `"Succeeded"` when the deployment completes successfully.
111
+
The output displays `"Succeeded"` when the deployment completes.
111
112
112
113
List the resources created in the resource group:
113
114
114
115
```bash
115
116
az resource list --resource-group cobalt-rg --output table
The output shows the resources created: virtual machine, network interface, public IP address resource, virtual network, network security groups, and OS disk.
133
134
134
-
## Retrieve the VM's public IP address
135
+
## Retrieve the Cobalt 100 VM public IP address
135
136
136
137
Get the public IP address to connect to your VM:
137
138
@@ -152,4 +153,6 @@ The public IP address is dynamically allocated and won't be available until the
152
153
153
154
## What you've accomplished and what's next
154
155
155
-
You've successfully deployed an Arm-based Cobalt 100 VM using an Azure Resource Manager template. The deployment created a virtual network with a configured subnet, network security groups allowing SSH access, a public IP address for external connectivity, and a Cobalt 100 VM running Ubuntu 24.04 LTS. In the next section, you'll connect to your VM and verify the Arm64 architecture.
156
+
You've deployed an Arm-based Cobalt 100 VM using an Azure Resource Manager template. The deployment includes network infrastructure with security groups, a public IP address, and a VM running Ubuntu 24.04 LTS.
157
+
158
+
Next, you'll connect to your VM and verify the Arm64 architecture.
title: Getting started with Azure Resource Manager
3
3
weight: 2
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
In this Learning Path, you'll create an Azure Resource Manager template that deploys a Linux virtual machine powered by Azure Cobalt 100 processors. The template configures networking, security, and SSH authentication, providing a complete foundation for deploying Arm-based workloads on Azure.
9
+
## Overview
10
10
11
-
You'll learn how to:
11
+
In this Learning Path, you’ll create an Azure Resource Manager template that deploys a Linux virtual machine powered by Azure Cobalt 100 processors. The template defines the virtual machine, networking, security settings, and SSH authentication required for deployment.
12
12
13
-
- Structure an Azure Resource Manager template with parameters, variables, and resources
14
-
- Specify Arm64 architecture and Cobalt 100 VM sizes
15
-
- Configure SSH key authentication for secure access
16
-
- Deploy the template using Azure CLI
17
-
- Verify and connect to your deployed Arm-based VM
18
-
19
-
By the end of this Learning Path, you'll have a reusable template for deploying Cobalt 100 VMs and the knowledge to customize it for your specific requirements.
20
-
Azure Resource Manager templates provide a declarative way to define and deploy Azure infrastructure as code. By using Resource Manager templates, you can automate the deployment of Arm-based Cobalt 100 virtual machines with consistent, repeatable results across different environments.
13
+
By using Azure Resource Manager templates, you can deploy infrastructure consistently across environments, reduce configuration errors, and integrate infrastructure provisioning into CI/CD workflows.
21
14
22
15
## What is an Azure Resource Manager template?
23
16
24
-
Azure Resource Manager templates are JSON files that define the infrastructure and configuration you want to deploy in Azure. Templates enable Infrastructure as Code (IaC), allowing you to version control your infrastructure alongside your application code. When you submit a template to Azure Resource Manager, it orchestrates the creation of all specified resources in the correct order, managing dependencies automatically. By using templates, you can achieve consistent, repeatable deployments across different environments while reducing configuration errors and enabling CI/CD automation.
17
+
An Azure Resource Manager template is a JSON file that defines the infrastructure and configuration you want to deploy in Azure. This approach is known as Infrastructure as Code (IaC).
18
+
19
+
When you deploy a template, Azure Resource Manager:
20
+
- Creates resources in the correct order
21
+
- Manages dependencies automatically
22
+
- Ensures deployments are consistent and repeatable
23
+
24
+
Using templates allows you to version control infrastructure alongside application code and automate deployments across environments.
25
25
26
-
## Before you begin
26
+
## Set up your environment
27
27
28
28
To complete this Learning Path, you need:
29
29
30
-
- An active Microsoft Azure subscription with permissions to:
31
-
- Create resource groups
32
-
- Deploy virtual machines
33
-
- Create networking resources (virtual networks, network security groups, public IP addresses)
34
-
- Azure CLI installed on your local machine (see the [Azure CLI install guide](/install-guides/azure-cli/))
35
-
- An SSH key pair for authentication
30
+
- An Azure account with an active subscription
31
+
- Azure CLI installed and configured
32
+
- A local terminal on Linux, macOS, or Windows (with WSL)
33
+
- An SSH key pair for secure access to the virtual machine
36
34
37
35
## Generate an SSH key pair
38
36
39
-
If you don't already have an SSH key pair, create one now. On Linux or macOS, run:
37
+
If you don't have an SSH key pair, create one now. On Linux or macOS, run:
When prompted, you can enter a passphrase for added security or press Enter to skip it.
46
44
47
-
This command creates two files:
48
-
-`~/.ssh/azure_cobalt_key`- Your private key (keep this secure)
49
-
-`~/.ssh/azure_cobalt_key.pub`- Your public key (you'll use this in the Azure Resource Manager template)
45
+
This creates two files:
46
+
-`~/.ssh/azure_cobalt_key`(private key - keep this secure)
47
+
-`~/.ssh/azure_cobalt_key.pub`(public key - you'll use this in the template)
50
48
51
49
## Sign in to Azure
52
50
@@ -72,7 +70,7 @@ You can list your subscriptions with:
72
70
az account list --output table
73
71
```
74
72
75
-
## Verify Azure CLI is working
73
+
## Verify your Azure CLI configuration
76
74
77
75
Confirm your Azure CLI is properly configured by checking your current subscription:
78
76
@@ -82,4 +80,8 @@ az account show --output table
82
80
83
81
The output displays details about your active subscription, including the subscription ID and tenant ID.
84
82
85
-
You're now ready to create the Azure Resource Manager template that will define your Arm-based Cobalt 100 VM infrastructure.
83
+
## What you've accomplished and what's next
84
+
85
+
You've authenticated with Azure, configured your active subscription, and generated SSH keys for secure VM access. Your development environment is ready for creating Azure Resource Manager templates.
86
+
87
+
Next, you'll create the Resource Manager template that defines your Cobalt 100 VM infrastructure.
The output displays the nginx default welcome page HTML, confirming the web server is running correctly.
120
+
The output displays the nginx default welcome page HTML, confirming the web server is running correctly:
123
121
124
122
```output
125
123
<!DOCTYPE html>
@@ -146,18 +144,21 @@ Commercial support is available at
146
144
</body>
147
145
</html>
148
146
```
147
+
149
148
## Clean up resources (optional)
150
149
151
-
When you're done exploring, you can delete all resources to avoid ongoing charges:
150
+
When you're done exploring, delete all resources to avoid ongoing charges:
152
151
153
152
```bash
154
153
az group delete --name cobalt-rg --yes --no-wait
155
154
```
156
155
157
156
This command deletes the resource group and all resources within it. The `--no-wait` flag returns immediately without waiting for the deletion to complete.
158
157
159
-
## Summary
158
+
## What you've accomplished and what's next
159
+
160
+
You've deployed a Cobalt 100 VM using an Azure Resource Manager template, connected via SSH, verified the Arm64 architecture, and tested nginx on the running system.
160
161
161
-
You've successfully deployed a Cobalt 100 VM using a Azure Resource Manager template, connected to the VM via SSH, verified the Arm64 architecture, and installed and tested nginx. Your Azure Resource Manager template provides a reusable foundation for deploying Cobalt 100 VMs. You can customize it by changing the VM size to scale resources, modifying the OS image to use different Linux distributions, adding additional network security rules for your applications, including data disks for storage, or deploying multiple VMs in a single template.
162
+
Your template provides a reusable foundation for deploying Cobalt 100 VMs. You can customize it by changing the VM size, modifying the OS image, adding network security rules, including data disks, or deploying multiple VMs.
162
163
163
-
For production deployments, consider using parameters files for environment-specific configurations, implementing Azure Key Vault for managing SSH keys, adding monitoring and diagnostics extensions, configuring backup policies, and using managed identities for Azure resource access.
164
+
For production deployments, consider using parameters files for environment-specific configurations, Azure Key Vault for managing SSH keys, monitoring and diagnostics extensions, backup policies, and managed identities for Azure resource access.
0 commit comments