Foreman AzureRm Plugin


foreman_azure_rm adds Microsoft Azure Resource Manager as a Compute Resource for The Foreman


Bundle (Gem)

Add the following to bundler.d/Gemfile.local.rb in your Foreman installation directory /usr/share/foreman

$ gem 'foreman_azure_rm'

Or simply:

$ echo "gem 'foreman_azure_rm'" > /usr/share/foreman/bundler.d/Gemfile.local.rb

Then run bundle install from the same directory


# yum install tfm-rubygem-foreman_azure_rm

Foreman Installer

# foreman-installer --enable-foreman-plugin-azure

Development Setup

Clone the repo from github:

git clone

Add the following to bundler.d/Gemfile.local.rb in your Foreman development directory

gem 'foreman_azure_rm', :path => 'path to foreman_azure_rm directory'

Then run bundle install from the same directory


  • Support for most typical IaaS operations
    • VM creation
    • Provisions using Finish and User data templates from Foreman
    • Supports cloud-config provisioning
    • Provisioning using Public Images
    • Provision using custom images
    • Provision using shared image galleries
    • Provision using RHEL byos images
    • Multiple NICs support
    • Support to add multiple data disks/volumes (standard or premium)
    • VM Extension with Custom Script and File URIs support
    • Static or dynamic addresses on a per NIC basis
    • Support for NVIDIA Drivers or CUDA on Linux and Windows
  • Limited extension support
    • Microsoft's custom script extension
    • Puppet Lab's Puppet agent extension for Windows
  • Azure Gov Cloud Support


Go to Infrastructure > Compute Resources and click on "New Compute Resource".

Choose the Azure Resource Manager provider, and fill in all the fields. You need a Subscription ID, Tenant ID, Client ID and a Client Secret which you can generate from your Microsoft Azure subscription

That's it. You're now ready to create and manage Azure resources in your new Azure Resource Manager Compute Resource. You should see something like this in the Compute Resource page:

Planned Features

  • Support for http_proxy

Known Limitations

  • Please note that currently username is expected to be the same on both Virtual Machine tab for Host creation and during Image creation for Compute Resource. The password field for Image creation is optional.