LinodeLive-testedreceipt

Linode CLI In A venv Of Its Own

The Linode CLI pinned in /opt/linode-cli, a virtual environment apart from the system Python, linked into the PATH. No package exists; pip into the system Python is the documented install. The live test runs pip check, calls the API with a token that is not one and expects Linode's 401, and asserts the system Python cannot import the package. Original role, live-tested on Rocky Linux 10.

ansibleCloud Toolinglinode

Verification

Live-tested

Really 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-19 · podman 4.9.3 · ansible 2.21.4 · how we verify

Documentation

linode-cli

The Linode (Akamai Connected Cloud) CLI (linode-cli) on EL 10, pinned to a version, in a virtual environment of its own with a link in the PATH. Original role for EL 10, live-tested with podman on Rocky Linux 10.

There is no package; the documented install is pip. EL 10 carries no linode-cli, and pip install into the system Python ties the CLI's dependencies to whatever the OS ships. This role puts the CLI in /opt/linode-cli, a venv apart from the system Python: an OS update cannot break it, and it cannot break the OS. The live test asserts import linodecli fails in /usr/bin/python3.

Pinned, and checked for consistency. linode_cli_version is what gets installed; the live test runs pip check inside the venv and expects no broken requirements.

pip verifies nothing beyond TLS. The index is PyPI over HTTPS; there is no signature to check. For a byte-for-byte pin, give linode_cli_pip_extra_args a requirements file with hashes and --require-hashes, or a private index.

Proven to run. The live test calls linode-cli linodes list without usable credentials and expects "401" - the whole tree loaded and the Linode client ran.

Without a token it starts a wizard. linode-cli with no token walks through interactive setup; the live test gives it a token that is not one and expects the API's 401, which proves the client reached Linode's API and was refused there.

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