Huawei CloudLive-testedreceipt

Huawei Cloud KooCLI, Pinned To A Versioned URL

Huawei's hcloud on EL 10 from a versioned path on Huawei's download host (the docs give only latest), refused by get_url unless the tarball's SHA-256 is the pinned one; Huawei's .sha256 names a build-server path, so the live test reads it and asserts its first field is the pin. The privacy statement stays per user; the role accepts it for nobody. Original role, live-tested on Rocky Linux 10.

ansibleCloud Toolinghuaweicloud

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

Documentation

huawei-koocli

The Huawei Cloud CLI (hcloud) on EL 10 from Huawei's OBS download host (the international mirror), 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 hcloud. Huawei publishes a .sha256 beside each tarball whose second field is a build-server path (*/devcloud/workspace/j_.../huaweicloud-cli-linux-amd64.tar.gz) rather than the asset's name, so Ansible's get_url cannot match it. The values here are those files' first fields for version 7.2.12, read on 2026-09-20; the live test fetches the vendor's file for the pinned version and asserts it still says so. 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 hcloud ECS NovaListServers --cli-region=ap-southeast-3 with no credentials and expects "does not contain profile" - the binary and its Huawei Cloud client ran; only the credentials were missing.

A versioned URL, though the docs only give latest. Huawei's install page points at .../cli/latest/; the same host serves .../cli/<version>/, which is what a pin needs. The role uses the international mirror (ap-southeast-3); koocli_release_url can point at the cn-north-1 mirror, which serves the same versioned path.

The privacy statement is per user, and this role does not accept it for anyone. KooCLI refuses every command, version included, until that user has run hcloud configure set --cli-agree-privacy-statement=true (kept in ~/.hcloud). The live test does that in a throwaway home under /tmp and reads the version and the no-profile error from there.

The binary is called hcloud, and so is Hetzner's. Huawei's docs, help and examples all say hcloud, so that is the name installed. On a host that also needs Hetzner's hcloud (the hcloud-cli role in this catalogue), set koocli_bin_dir to a directory of its own, /opt/koocli/bin for instance, and add it to the PATH where you want it.

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