azure-asm-compute

Microsoft Azure Compute Management Client Library for node

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
azure-asm-compute
0.18.05 years ago7 years agoMinified + gzip package size for azure-asm-compute in KB

Readme

Microsoft Azure SDK for Node.js - Compute Management
This project provides a Node.js package that makes it easy to manage Microsoft Azure Virtual Machines and Cloud Services. Right now it supports:
  • Node.js version: 0.6.15 or higher
  • API version: 2016-06-01

Features

  • Manage virtual machine
  • Manage virtual machine OS and data disk
  • Manage virtual machine image
  • Manage deployment
  • Manage cloud service
  • Manage service certificate
  • Get operating systems and operating system families
  • Redeploy virtual machines
  • Migrate virtual machines to resource manager stack

How to Install

```bash npm install azure-asm-compute ```

How to Use

Authentication

This library support management certificate authentication. To authenticate the library for the REST API calls, you need to
  • Have a management certificate set up in your Microsoft Azure subscription. You can do this by
Either uploading a certificate in the Microsoft Azure management portal. Or use the Microsoft Azure Xplat-CLI.
  • Obtain the .pem file of your certificate. If you used Microsoft Azure Xplat-CLI to set it up. You can run `azure account cert export` to get the .pem file.

Create the ComputeManagementClient

```javascript var fs = require('fs'),
computeManagement = require('azure-asm-compute');
var computeManagementClient = computeManagement.createComputeManagementClient(computeManagement.createCertificateCloudCredentials({ subscriptionId: '', pem: fs.readFileSync('', 'utf-8') })); ```

Manage Virtual Machine

```javascript var serviceName = "cloudservice01"; var deploymentName = "deployment01"; var virualMachineName = "vm01"; var storageAccountName = "storage01"; var diskContainerName = "vhds"; // List all the virtual machine images you can use. computeManagementClient.virtualMachineVMImages.list(function (err, result) { if (err) {
console.error(err);
} else {
console.info(result);
} }); // Create a cloud service. computeManagementClient.hostedServices.create({ serviceName: serviceName, label: "cloud service 01", location: "West US" }, function (err, result) { if (err) {
console.error(err);
} else {
console.info(result);
// Create a virtual machine in the cloud service.
computeManagementClient.virtualMachines.createDeployment(serviceName, {
name: deploymentName,
deploymentSlot: "Production",
label: "deployment 01",
roles: [{
roleName: virualMachineName,
roleType: "PersistentVMRole",
label: "virutal machine 01",
oSVirtualHardDisk: {
sourceImageName: "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201312.01-en.us-127GB.vhd",
mediaLink: "http://"+ storageAccountName + ".blob.core.windows.net/" + diskContainerName + "/" +
serviceName + "-" + virualMachineName + "-" + Math.floor((Math.random()*100)+1) + ".vhd"
},
dataVirtualHardDisks: [],
configurationSets: [{
configurationSetType: "WindowsProvisioningConfiguration",
adminUserName: "<your admin user name>",
adminPassword: "<your admin password>",
computerName: virualMachineName,
enableAutomaticUpdates: true,
resetPasswordOnFirstLogon: false,
storedCertificateSettings: [],
inputEndpoints: [],
windowsRemoteManagement: {
listeners: [{
listenerType: "Https"
}]
}
}, {
configurationSetType: "NetworkConfiguration",
subnetNames: [],
storedCertificateSettings: [],
inputEndpoints: [{
localPort: 3389,
protocol: "tcp",
name: "RemoteDesktop"
}, {
localPort: 5986,
protocol: "tcp",
name: "WinRmHTTPS"
}]
}]
}]
}, function (err, result) {
if (err) {
console.error(err);
} else {
console.info(result);
}
});
} }); ```

Related projects