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.
Verification
Live-testedReally 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
- SHA-256 checksum
- Cosign signature
Functional
- Live-tested - applied, verified, destroyed
Last verified 2026-06-30 · how we verify
Verify this download
cosign · sha-256Don'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 -cUse it from the registry
terraform · opentofumodule "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 · attributionPaste 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.
[](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:
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_subnetazurerm_network_security_group— SSH (ssh_port) allowed only fromallowed_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 validadmin_ssh_public_keyis required. - No open ingress by default —
allowed_source_cidris 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 theMetadata: truerequest 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
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.
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.
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.
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.
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.
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).