Install modules with terraform init
Every Terraform/OpenTofu module on IaC Bazaar is installable directly by terraform and tofu via the standard module registry protocol - no tarball downloads, no vendoring. Reference the module in a source address, pin a version, run init. Ansible roles are not served here (the protocol is Terraform/OpenTofu-only); download those from your account.
The module address
www.iac-bazaar.com/iac-bazaar/<slug>/<system>www.iac-bazaar.comThe registry host - always the bare hostname, no https://.iac-bazaarThe namespace - always literally this.<slug>The module slug, exactly as it appears in the catalog URL (e.g.aws-s3-bucket).<system>The module's cloud/provider key as shown in the catalog (e.g.aws,azure,gcp). Any of the module's target clouds is accepted, case-insensitive.
Quick start
Every module in the catalogue is free, and they still need a free account - a registry token identifies who is downloading. No purchase, no subscription, no entitlement: any valid token works. Add the module block, pin the version, init:
module "s3_bucket" {
source = "www.iac-bazaar.com/iac-bazaar/aws-s3-bucket/aws"
version = "1.0.0"
bucket_name = "my-hardened-bucket"
}terraform init # or: tofu initThat init fails with 401 until credentials are configured, because the registry has to know who is asking. Do the two steps below once per machine and every module in the catalogue is reachable.
Credentials
Two steps, once per machine, and then every module in the catalogue installs. There is nothing to buy: the modules are free, and Vizier is the paid product.
- Create a registry token at /account/tokens. Tokens look like
iacb_<40 hex>and are shown once - only a hash is stored, so copy it when it appears. - Configure credentials - either of the two options below. Both work for terraform and tofu.
Option A - CLI config file
Add a credentials block to ~/.terraformrc (Windows: %APPDATA%/terraform.rc; OpenTofu: ~/.tofurc):
credentials "www.iac-bazaar.com" {
token = "iacb_..."
}Option B - environment variable
Terraform and tofu both read a per-host token from an env var named after the hostname, where dots become underscores and dashes become double underscores - so www.iac-bazaar.com becomes TF_TOKEN_www_iac__bazaar_com:
export TF_TOKEN_www_iac__bazaar_com="iacb_..."In CI
The env-var form is made for CI - store the token as a secret and expose it to the job. GitHub Actions, for example:
jobs:
plan:
runs-on: ubuntu-latest
env:
TF_TOKEN_www_iac__bazaar_com: ${{ secrets.IAC_BAZAAR_TOKEN }}
steps:
- uses: actions/checkout@v4
- run: terraform init
- run: terraform planBehaviour notes
- Versions - pin
versionto a published version of the module (the module page shows the current one). The registry serves exactly the published versions, nothing else. - 401 vs 403 -
401means the token is missing or invalid.403means the account may not have that module, which for a catalogue that is entirely free should not happen: if you see one, it is worth reporting rather than working around. - Verification - registry installs are the same signed tarballs as direct downloads: every one ships its embedded
VERIFICATION.json, and the public sha256 + cosign signature endpoints still apply. See /verify and the API docs. - Under the hood - the standard Terraform module registry protocol; service discovery lives at
/.well-known/terraform.json.