Microsoft Azure PowerShell

[edit on GitHub]

PowerShell

PowerShell Cmdlets

If Windows PowerShell is installed on the workstation, along with the Azure Chef Extension, the Get-AzureVMChefExtension and Set-AzureVMChefExtension extensions may be used to manage Chef running on virtual machines in Microsoft Azure.

Get-AzureVMChefExtension

Use the Get-AzureVMChefExtension cmdlet to get the details for the Azure Chef Extension that is running on the named virtual machine.

Syntax

This cmdlet has the following syntax:

Get-AzureVMChefExtension -VM <string>
Example

The following examples show how to use the Get-AzureVMChefExtension cmdlet:

Get details for a virtual machine

$ Get-AzureVM -ServiceName cloudservice1 -Name azurevm1 | Get-AzureVMExtension

Set-AzureVMChefExtension

Use the Set-AzureVMChefExtension cmdlet to enable Chef on any virtual machine running on Microsoft Azure.

Syntax

This cmdlet has the following syntax.

For Microsoft Windows:

Set-AzureVMChefExtension -ValidationPem <String> -VM <IPersistentVM> -Windows [-ChefServerUrl <String> ] [-ClientRb <String> ] [-OrganizationName <String> ] [-RunList <String> ] [-ValidationClientName <String> ] [-Version <String> ] [ <CommonParameters>]

For Linux:

Set-AzureVMChefExtension -Linux -ValidationPem <String> -VM <IPersistentVM> [-ChefServerUrl <String> ] [-ClientRb <String> ] [-OrganizationName <String> ] [-RunList <String> ] [-ValidationClientName <String> ] [-Version <String> ] [ <CommonParameters>]
Options

This cmdlet has the following options:

-AutoUpdateChefClient
Auto-update the chef-client. Set to true to auto update the version of the Azure Chef Extension when the virtual machine is restarted. For example, if this option is enabled, a virtual machine that has version 1205.12.2.0 will be updated automatically to 1205.12.2.1 when it is published.
-BootstrapOptions <string>

A JSON string that is added to the first run of a chef-client. For example:

-BootstrapOptions '{"chef_node_name":"test_node"}'

Supported options: "chef_node_name", "chef_server_url" (required), "environment", "secret", and "validation_client_name" (required).

-ChefServerUrl <string>
The URL for the Chef server.
-ClientRb <string>
The path to the client.rb file.
-DeleteChefConfig
Disable the Azure Chef Extension extension.
-Linux
Sets the Azure Chef Extension to run Linux.
-OrganizationName <string>
The name of the organization on the Chef server.
-RunList <string>
A comma-separated list of roles and/or recipes to be applied.
-ValidationClientName <string>
The name of the chef-validator key that is used by the chef-client to access the Chef server during the initial chef-client run.
-ValidationPem  <string>
The location of the file that contains the key used when a chef-client is registered with a Chef server. A validation key is signed using the validation_client_name for authentication. Default value: /etc/chef/validation.pem.
-Version <string>
Specify the version number for the Azure Chef Extension extension. Default is to use the latest extension’s version number.
-Windows
Sets the Azure Chef Extension to run Microsoft Windows.
Examples

The following examples show how to use the Set-AzureVMChefExtension cmdlet:

Create Windows virtual machine

$vm1 = "azurechefwin"
$svc = "azurechefwin"
$username = 'azure'
$password = 'azure@123'

$img = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201406.01-en.us-127GB.vhd"

$vmObj1 = New-AzureVMConfig -Name $vm1 -InstanceSize Small -ImageName $img

$vmObj1 = Add-AzureProvisioningConfig -VM $vmObj1 -Password $password -AdminUsername $username –Windows

# set azure chef extension
$vmObj1 = Set-AzureVMChefExtension -VM $vmObj1 -ValidationPem "C:\\users\\azure\\msazurechef-validator.pem" -ClientRb
"C:\\users\\azure\\client.rb" -RunList "getting-started" -Windows

New-AzureVM -Location 'West US' -ServiceName $svc -VM $vmObj1

Create CentOS virtual machine

$vm1 = "azurecheflnx"
$svc = "azurecheflnx"
$username = 'azure'
$password = 'azure@123'

# CentOS image id
$img = "5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-71-20150605"

$vmObj1 = New-AzureVMConfig -Name $vm1 -InstanceSize Small -ImageName $img

$vmObj1 = Add-AzureProvisioningConfig -VM $vmObj1 -Password $password -Linux -LinuxUser $username

# set azure chef extension
$vmObj1 = Set-AzureVMChefExtension -VM $vmObj1 -ValidationPem "C:\\users\\azure\\msazurechef-validator.pem" -ClientRb
"C:\\users\\azure\\client.rb" -RunList "getting-started" -Linux

New-AzureVM -Location 'West US' -ServiceName $svc -VM $vmObj1

Create Ubuntu virtual machine

$vm1 = "azurecheflnx"
$svc = "azurecheflnx"
$username = 'azure'
$password = 'azure@123'

$img = "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_5-LTS-amd64-server-20150127-en-us-30GB"

$vmObj1 = New-AzureVMConfig -Name $vm1 -InstanceSize Small -ImageName $img

$vmObj1 = Add-AzureProvisioningConfig -VM $vmObj1 -Password $password -Linux -LinuxUser $username

# set azure chef extension
$vmObj1 = Set-AzureVMChefExtension -VM $vmObj1 -ValidationPem "C:\\users\\azure\\msazurechef-validator.pem" -ClientRb
"C:\\users\\azure\\client.rb" -RunList "getting-started" -Linux

New-AzureVM -Location 'West US' -ServiceName $svc -VM $vmObj1