yq, Pinned From A Checksum File get_url Cannot Read
Mike Farah's yq on EL 10 from the GitHub release, refused by get_url unless its SHA-256 is the pinned one: yq's checksum files are rhash and BSD forms that get_url cannot parse, so the live test fetches checksums-bsd for the version and asserts the SHA256 line is the pin, then reads a key from a YAML file through yq. 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-yq?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)
Ansible role 1.0.0, live-tested on IaC Bazaar: [yq, Pinned From A Checksum File get_url Cannot Read](https://www.iac-bazaar.com/catalog/ansible-yq?utm_source=syndication&utm_medium=readme&utm_campaign=artifact)
```yaml
# yq, Pinned From A Checksum File get_url Cannot Read: https://www.iac-bazaar.com/catalog/ansible-yq (download from your IaC Bazaar account)
```Preview:
Documentation
yq
The yq CLI (yq) on EL 10 from the vendor's GitHub release,
checked against a SHA-256 pinned beside the 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, and no checksum file to speak of. EL 10 carries no
yq. yq publishes two checksum files, neither in the hash name shape Ansible's get_url reads: checksums lists every hash of every asset on one line each (rhash), and checksums-bsd uses the BSD form (SHA256 (yq_linux_amd64) = ...). The values here are those SHA256 lines for 4.53.6, read on 2026-09-20; the live test fetches checksums-bsd for the pinned version and asserts the line is still there. This role pins the SHA-256 per architecture
beside the version, has Ansible's get_url refuse the asset unless it
matches, and the live test checksums the asset on disk again. A new
release is a new pair, on purpose.
Proven to run. The live test calls yq .greeting /tmp/yq-p/in.yaml with no
credentials and expects "iacbazaar-yq-read" - the binary and its
yq client ran; only the credentials were missing.
A YAML processor, exercised on YAML. The live test writes a
one-line document and reads a key back through yq, the proof the
parser and the expression engine ran. yq also publishes cosign bundles
(checksums.bundle) for the checksum files; this role checks the SHA-256.
There is a yq in EPEL that is a different program (the Python one, a jq
wrapper); this is Mike Farah's Go yq, the one most documentation means.
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.