Terraform CLI, SHA256SUMS Signed By HashiCorp
terraform on EL 10 from releases.hashicorp.com. HashiCorp's security key lives in a GnuPG home of its own, pinned by fingerprint; the SHA256SUMS signature is verified before get_url checks the zip against that file, and the live test verifies it again. BSL-licensed since 1.6; opentofu in this catalogue is the MPL alternative. Original role, live-tested on Rocky Linux 10.
Verification
Live-testedReally deployed to a container sandbox, proven idempotent (a second run changes nothing), verified against the role’s assertions, then torn down.
Conformance
- Static validation (yamllint · ansible-lint)
Provenance
- SHA-256 checksum
- Signature (pending)
Functional
- Live-tested - applied, verified, destroyed
Last verified 2026-09-20 · podman 4.9.3 · ansible 2.21.4 · how we verify
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/ansible-terraform-cli?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)
Ansible role 1.0.0, live-tested on IaC Bazaar: [Terraform CLI, SHA256SUMS Signed By HashiCorp](https://www.iac-bazaar.com/catalog/ansible-terraform-cli?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)
```yaml
# Terraform CLI, SHA256SUMS Signed By HashiCorp: https://www.iac-bazaar.com/catalog/ansible-terraform-cli (download from your IaC Bazaar account)
```Preview:
Documentation
terraform-cli
HashiCorp terraform on EL 10 from the vendor's release, checked against the
published SHA-256 and the vendor's signature on it, pinned to a version, installed as root's binary
in /usr/local/bin. Original role for EL 10, live-tested with podman on
Rocky Linux 10.
No package worth the name. EL 10 carries no terraform, and a
third-party repository is one more key to trust. This role takes the
release from releases.hashicorp.com, has Ansible's get_url refuse the asset unless
its SHA-256 is the published one, and the live test checks the asset on
disk against the same published value again.
The checksum file is signed, and the signature is checked first. HashiCorp Security
signs terraform_1.16.3_SHA256SUMS; the role ships HashiCorp Security's public key
(C874 011F 0AB4 0511 0D02 1055 3436 5D94 72D7 468F), imports it into a GnuPG home of its own under
/usr/local/src, asserts that fingerprint, and verifies the signature
before get_url is allowed to trust the file. The live test re-verifies
the signature and asserts the home holds exactly the expected key(s).
Pinned. terraform_cli_version is what gets installed, kept in a directory
of its own so the checksum file and the asset it names stay together. A
newer release is a variable change and a run; the same version is
changed=0.
Proven to run. The live test runs terraform -chdir=/tmp init -no-color and expects
"Terraform initialized in an empty directory" - the binary ran all the way to the point where it
needed something this host does not have.
HashiCorp signs with a subkey. The SHA256SUMS signature is made by
signing subkey 374E C75B 4859 1360 4A83 1CC7 C820 C6D5 CD27 AB87 of the
HashiCorp Security key; gpg reports the good signature under the primary
key's identity, and the role pins the primary fingerprint. Terraform is
under the BSL since 1.6; this role installs it, the licence question is
yours - opentofu in this catalogue is the MPL alternative.
License
Commercial - IaC Bazaar EULA. (c) IaC Bazaar.
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.
- Variables
- Test
Related modules
ansible-forgejo-runner
Forgejo Runner 13.2 from the vendor's release, sha256-checked, in a hardened unit, registered the way Forgejo now asks: a secret registered with forgejo-cli on the Forgejo host and a connection in config.yml. The live test pushes a workflow; its job runs on the runner and finds /home hidden, /tmp private and the system read-only. Original role, live-tested on Rocky Linux 10.
ansible-forgejo
Forgejo from the upstream release as a hardened service on loopback with sqlite and a configuration it never needs to write. The live test creates an administrator with Forgejo's own command, sees a wrong password refused and registration disabled, creates a private repository, hides it from an anonymous request and clones it over HTTP. Original role, live-tested on Rocky Linux 10.
ansible-atmos
atmos on EL 10 from the GitHub release, get_url refuses it unless its SHA-256 is the one in the vendor's SHA256SUMS, and the live test re-checks it, then writes an atmos.yaml, a stack and a component, validates the stacks and describes the component with no Terraform installed. Pinned. Original role, live-tested on Rocky Linux 10.
ansible-checkov
Checkov pinned in /opt/checkov, a virtual environment apart from the system Python. The live test runs pip check, scans a one-resource module with the built-in checks and --skip-download and expects a 'Failed checks:' summary with no network, and asserts the system Python cannot import it. Original role, live-tested on Rocky Linux 10.
ansible-conftest
conftest on EL 10 from the GitHub release, refused by Ansible's get_url unless its SHA-256 is the one in the project's checksums.txt, and re-checked with sha256sum -c by the live test, which then writes a one-rule Rego v1 policy and a one-line document, runs conftest test and expects the denial in the report. Original role, live-tested on Rocky Linux 10.
ansible-consul-cli
consul on EL 10 from releases.hashicorp.com: the client binary, not a server. HashiCorp's key lives in a GnuPG home of its own, pinned by fingerprint; the SHA256SUMS signature is verified before get_url checks the zip against that file, and the live test verifies it again, then runs consul members against nothing and expects the refused connection. Original role, live-tested on Rocky Linux 10.