This blog post was originally stretched out into a few sections. It never came into fruition. Leaving this here as a reference for anyone else trying similar things.
- Creating and configuring Azure to work with Terraform.
- Terraforming a Azure resource group using Azure Resource Manager (ARM).
- Configuring a base image.
- Using Terraform and Ansible to deploy an infrastructure.
This second section deals with using Terraform and configuring a base image, for future use.
the first terraform apply
The first run of Terraform will be to create the
vm_image Resource Group.
Clone the repository if you haven’t already (or create your own):
git clone email@example.com:bonovoxly/terraforms.git
- Step into the
- Source the
azure_credentials.shfile (loads Azure variables as environment variables from
- Run Terraform plan and apply it:
% terraform plan
% terraform apply
It may take a few minutes to create the resource group and all associated objects. Take a look at the Terraform files here.
configure the base VM image
vm_image resource group created, the next step is to configure the instance. Get the IP address from the Azure portal.
- SSH to the instance.
- Run the following:
% sudo waagent -force -deprovision+user % exit
- Configure Azure CLI:
% azure config mode arm % azure login
- Shutdown the VM:
% azure vm deallocate -g vmimage -n vmtarget info: Executing command vm deallocate + Looking up the VM "vmtarget" + Deallocating the virtual machine "vmtarget" info: vm deallocate command OK
- Generalize the VM:
% azure vm generalize -g vmimage -n vmtarget info: Executing command vm generalize + Looking up the VM "vmtarget" + Generalizing the virtual machine "vmtarget" info: vm generalize command OK