Skip to content

puppetlabs/puppetlabs-azure_arm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Azure ARM

Table of Contents

  1. Description
  2. Setup
  3. Usage
  4. Reference

Deprecation notice

We are no longer developing this module and will be eventually deprecating in the future.

Description

Microsoft Azure exposes a powerful API for creating and managing its Infrastructure as a Service platform. Using Puppet code, the azure arm (Azure Resource Manager) module enables you to interact with that API to create and destroy virtual machines, and to manage other resources.

The azure arm module is generated from the Microsoft Azure REST API specifications. For additional information, see the Azure documentation.

Classic (ASM) Azure is not supported.

Note: This module and the puppetlabs-azure module are mutually exclusive and should not be installed on the same machine. To avoid potential errors during a puppet run, install each module on separate machines.

Setup

Getting Azure credentials

To use this module, you need an Azure account. If you already have one, you can skip this section.

  1. Sign up for an Azure account.

  2. To generate a certificate for the Puppet module, install the Azure CLI which is a cross-platform node.js-based tool that works on Windows and Linux.

  3. To authenticate with the Azure CLI, run the following command to receive the authentication code:

    az login
  4. Visit https://microsoft.com/devicelogin and enter the authentication code.

  5. To get a subscription ID, run the az account list command:

    $ az account list

[ { "cloudName": "AzureCloud", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "isDefault": true, "name": "xxxx", "state": "Enabled", "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "user": { "name": "xxxx@xxxx.xxx", "type": "user" } } ] ```

To use the Resource Manager API instead, you need a service principal on the Active Directory. For more information, see the Azure documentation.

Setting environment variables

Set the following environment variables specific to your Azure installation (note the casing here).

export azure_subscription_id='your-subscription-id'
export azure_tenant_id='your-tenant-id'
export azure_client_id='your-client-id'
export azure_client_secret='your-client-secret'

Installing the module

To install the azure arm module, run the following command:

puppet module install puppetlabs-azure_arm

Validating the module

The azure arm module is compliant with the Puppet Development Kit (PDK), which provides the tool to help validate the modules's metadata, syntax, and style. When you run validations, the PDK output tells you which validations are running and notifies you of any errors, or warnings, it finds for each type of validation; syntax, code style, and metadata.

To run all validations against this module, run the following commands:

pdk validate ruby
pdk validate metadata

To change validation behavior, add options flags to the command. For a complete list of command options and usage information, see the PDK command reference.

Usage

To create or remove resources in your manifests, set the ensure parameter to present or absent. The stopped and running states are managed using the Microsoft Azure Portal. This functionality is available in the next Puppet Azure ARM release.

Examples

The examples directory contains the following usage examples:

Following the create_vm.pp example, use the puppet resource command on existing resources to determine which values to populate in custom manifests.

For example:

puppet resource azure_application_gateway

Reference

Types and providers

Here is a list of the types and providers with links to detailed descriptions for each one:

account.json

account.json(1)

accountfilters.json

accounts.json

actiongroups_api.json

activitylogalerts_api.json

advisor.json

alertrules_api.json

analysisservices.json

analyticsitems_api.json

apimdeployment.json

apimemailtemplate.json

apimversionsets.json

application.json

applicationgateway.json

applicationsecuritygroup.json

appservicecertificateorders.json

appserviceenvironments.json

assetsandassetfilters.json

authorization-roleassignmentscalls.json

authorization-roledefinitionscalls.json

autoscale_api.json

azureactivedirectory.json

azurefirewall.json

bastionhost.json

batchai.json

blob.json

bms.json

cdn.json

certificates.json

cluster.json

cognitiveservices.json

components_api.json

compute.json

consumption.json

containerinstance.json

containerregistry.json

containerregistry_build.json

containerservice.json

containerservice.json(1)

contentkeypolicies.json

contentmoderator.json

cosmos-db.json

costmanagement.json

customer-insights.json

customersubscription.json

databox.json

databricks.json

datacatalog.json

datafactory.json

ddoscustompolicy.json

ddosprotectionplan.json

devspaces.json

disasterrecoveryconfigurations.json

disk.json

dns.json

domains.json

domainservices.json

edgegateway.json

elasticpools.json

encoding.json

eventgrid.json

eventhub.json

expressroutecircuit.json

expressroutecrossconnection.json

expressroutegateway.json

expressrouteport.json

favorites_api.json

file.json

firewallpolicy.json

firewallrules.json

frontdoor.json

functions.json

gallery.json

graphrbac.json

guestconfiguration.json

healthcare-apis.json

hybriddata.json

inputs.json

interfaceendpoint.json

iotcentral.json

iotdps.json

iothub.json

iotsecuritysolutions.json

keyvault.json

kusto.json

links.json

loadbalancer.json

locks.json

logic.json

logicappsmanagementclient.json

logprofiles_api.json

machinelearningservices.json

managedapplications.json

managedclusters.json

managedidentity.json

managedservices.json

maps-management.json

mariadb.json

media.json

metricalert_api.json

migrate.json

ml.json

mysql.json

natgateway.json

networkinterface.json

networkprofile.json

networksecuritygroup.json

networkwatcher.json

notificationhubs.json

openshiftmanagedclusters.json

operationalinsights.json

outputs.json

policy.json

policyassignments.json

policydefinitions.json

policysetdefinitions.json

postgresql.json

powerbidedicated.json

privatedns.json

privateendpoint.json

privatelinkservice.json

publicipaddress.json

publicipprefix.json

recoveryservicesbackup.json

redis.json

registration.json

relay.json

resources.json

routefilter.json

routetable.json

scheduledqueryrule_api.json

search.json

serverazureadadministrators.json

servercommunicationlinks.json

servers.json

service.json

service.json(1)

servicebus.json

serviceendpointpolicy.json

signalr.json

smartdetectoralertrulesapi.json

storage.json

storageimportexport.json

storagesync.json

storsimple.json

streamingjobs.json

streamingpoliciesandstreaminglocators.json

streamingservice.json

timeseriesinsights.json

vaults.json

virtualnetwork.json

virtualnetworkgateway.json

virtualnetworktap.json

virtualwan.json

vmwarecloudsimple.json

webapplicationfirewall.json

webapplicationfirewall.json(1)

webapps.json

webservices.json

webtests_api.json

windowsiotservices.json

workbooks_api.json

workspaces.json