AzureLive-testedattested

Azure Linux Virtual Machine (self-contained)

A fully self-contained general-purpose Linux VM on Azure - one apply creates the resource group, VNet, subnet, NSG, NIC, optional public IP and an SSH-key-only VM with a system-assigned identity.

terraformAzureazure

Compare Virtual Machines across clouds →

azure-virtual-machinevizier v1.2.0

Verification

Live-tested

Really deployed to a cloud sandbox, verified against its outputs and assertions, then destroyed - with the teardown confirmed.

Conformance

  • Static validation (fmt · validate · tflint)
  • Security scan clean (Checkov)
  • Plan test superseded by live test

Provenance

Functional

  • Live-tested - applied, verified, destroyed

Last verified 2026-06-30 · how we verify

Verify this download

cosign · sha-256

Don't take our word for it. Every release is signed with cosign - check the bytes against our pinned public key before you trust them.

# 1. Our pinned public key - fetch once, trust out-of-band
curl -O https://www.iac-bazaar.com/cosign.pub

# 2. This module's Sigstore bundle
curl -o azure-virtual-machine-1.0.0.sigstore.json \
  https://www.iac-bazaar.com/api/artifacts/azure-virtual-machine/signature

# 3. Verify the tarball you downloaded
cosign verify-blob \
  --key cosign.pub \
  --bundle azure-virtual-machine-1.0.0.sigstore.json \
  azure-virtual-machine-1.0.0.tar.gz
# → Verified OK

# 4. (optional) confirm the checksum too
echo "7838a5b9f8b53b0dfc9badeef6ed9c41fa2ab147b0584e8267c8f196b1ccab7a  azure-virtual-machine-1.0.0.tar.gz" | sha256sum -c

Use it from the registry

terraform · opentofu
module "virtual_machine" {
  source  = "www.iac-bazaar.com/iac-bazaar/azure-virtual-machine/azure"
  version = "1.0.0"
}

Needs a registry token from /account/tokens. The module itself is free; the account is what identifies you. Full setup: registry docs.

Cite it in your README

badge · attribution

Paste this beside the module in the repository that uses it. The badge is rendered from this artifact's verification record, so it reads live-tested because the record says so, and the link lands on this page.

README.md, GitLab, Gitea
[![IaC Bazaar: live-tested](https://www.iac-bazaar.com/api/artifacts/azure-virtual-machine/badge)](https://www.iac-bazaar.com/catalog/azure-virtual-machine?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

Terraform module 1.0.0, live-tested on IaC Bazaar: [Azure Linux Virtual Machine (self-contained)](https://www.iac-bazaar.com/catalog/azure-virtual-machine?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)

```hcl
module "virtual_machine" {
  source  = "www.iac-bazaar.com/iac-bazaar/azure-virtual-machine/azure"
  version = "1.0.0"
}
```

Preview:IaC Bazaar: live-tested

Inputs & outputs

Create a free account to read this module's contract

The declared contract - every input name, type, default and description, plus every output - is shown to signed-in accounts, not to anonymous visitors.

A free account sees the contract of every module in the catalogue. There is no subscription and nothing to buy - the modules are free to download, and they run under Vizier.

Documentation

azure-virtual-machine

A fully self-contained general-purpose Linux VM on Azure. One tofu apply creates everything — resource group, virtual network, subnet, NSG, NIC, an optional public IP and the VM — and tofu destroy removes all of it (including the resource group). Bring your own bootstrap via custom_data, or deploy a plain VM and configure it later. Works with Terraform and OpenTofu (>= 1.6), azurerm provider >= 4.0, < 5.0.

What it provisions

  • azurerm_resource_group (created and destroyed by this module)
  • azurerm_virtual_network + azurerm_subnet
  • azurerm_network_security_group — SSH (ssh_port) allowed only from allowed_source_cidr, plus an explicit DenyAllInbound; associated at both the subnet and the NIC (defense-in-depth)
  • azurerm_network_interface (+ NSG association)
  • optional azurerm_public_ip (Standard, static; create_public_ip)
  • azurerm_linux_virtual_machine (SSH-key-only, system-assigned identity, optional cloud-init bootstrap)

Secure defaults

  • SSH-key auth only — disable_password_authentication = true; a valid admin_ssh_public_key is required.
  • No open ingress by default — allowed_source_cidr is required (no default) and gates SSH; a catch-all rule denies everything else inbound.
  • System-assigned managed identity for least-privilege role grants, consumed by workloads on the VM via the Azure Instance Metadata Service (IMDS) at 169.254.169.254 (which requires the Metadata: true request header).
  • OS disk encrypted at rest with platform-managed keys (always on in Azure); optional host-based encryption via encryption_at_host_enabled.
  • Optional Trusted Launch (Secure Boot + vTPM) for capable VM sizes (secure_boot_enabled / vtpm_enabled, off by default so the cheapest B1s size always applies).

License

Commercial — LicenseRef-IaCBazaar-Commercial

Usage code & full reference need an account

The complete copy-paste usage, the full input/output reference, and operational notes are free with an account - shown here and bundled in the download. Sign in and this section fills in.

  • Usage
  • Inputs
  • Outputs
  • Requirements & notes

Related modules

Static validatedLive test pending

azure-update-manager

A maintenance configuration is a schedule and a filter; a machine follows it only through an assignment, and one with no assignment appears scheduled and touches no host. reboot Never installs the kernel and runs the old one; a VM on image-default patching is assigned and skipped. Machines or a dynamic scope come with it; IfRequired reboots; the patch mode every VM needs is an output.

View module
Live-tested

azure-vmss

A self-contained Linux VM Scale Set (Uniform orchestration) on Azure - one apply creates the resource group, VNet, subnet, NSG and an SSH-key-only scale set with deny-all-inbound and no public IPs.

View module
Static validatedLive test pending

azure-image-gallery

Community sharing publishes every image version to every Azure customer, unauthenticated, with your publisher email attached; trusted launch supported means a VM may boot without Secure Boot, and an image with no end-of-life date is a 2021 build still being deployed. Private by default, trusted launch required on every definition, an end-of-life date on each, and Hyper-V generation 2 throughout.

View module
Static validatedLive test pending

tencent-cvm-instance

A CVM instance in your subnet with login by key pair and no password, ordered security groups, no public address (one by name), the system disk encrypted with your KMS key (the service key by name), the Cloud Workload Protection and Cloud Monitor agents left on, a CAM role when you name one, and API termination refused. Pay-as-you-go by the hour.

View module
Static validatedLive test pending

aws-lightsail-instance

A Lightsail instance is created with 22 and 80 open to every address; its public address changes when it stops unless a static IP is attached, and every DNS record pointing at it is then wrong; and automatic snapshots are off. The port list replaced by your rules with SSH from anywhere accepted by name, a static IP attached, and the daily AutoSnapshot add-on on at the hour you choose.

View module
Static validatedLive test pending

scaleway-instance

A Scaleway instance on a Private Network with a required security group (the project default allows everything inbound), no public address unless a flexible IP is accepted by name, the project's SSH keys and no password, a Block Storage root volume deleted with the instance, cloud-init, and protection from deletion (off by name).

View module