Azure CLI From The Right Repository, With The Right Key
The Azure CLI on EL 10 from Microsoft's rhel/10/prod repository, signed by the 2025 key: the key in most guides carries SHA-1 signatures and fails the GPG check, and the repository in most guides tops out at a 2022 build. Pinned, telemetry and the survey prompt off for every login shell; the live test asserts the SHA-1 key was never imported. 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-19 · podman 4.9.3 · ansible 2.21.4 · how we verify
Documentation
azure-cli
The Azure CLI on EL 10 from Microsoft's own repository, signed by the key that actually signs it, pinned to a version, with telemetry and the survey prompt off for every login shell. Original role for EL 10, live-tested with podman on Rocky Linux 10.
The key in most guides is the wrong key. Microsoft's long-standing Linux
signing key (microsoft.asc) carries SHA-1 signatures, which EL 9 and 10
refuse; since spring 2025 new repositories are signed by microsoft-2025.asc
(AA86 F75E 427A 19DD 3334 6403 EE4D 7792 F748 182B). Import the old key
and dnf install azure-cli from rhel/10/prod fails with "the GPG keys
listed for the repository are already installed but they are not correct
for this package". This role imports the 2025 key, checked by fingerprint,
and the live test asserts it is in rpm's keyring and the SHA-1 key is not.
The repository in most guides is the wrong repository. The
yumrepos/azure-cli repository tops out at azure-cli 2.38 (an el7 build
from 2022). rhel/10/prod carries the current release built for EL 10.
Telemetry is on by default. The CLI reports usage to Microsoft unless
core.collect_telemetry is off, and that is a per-user setting. The role
exports AZURE_CORE_COLLECT_TELEMETRY=false (and the survey prompt off)
from /etc/profile.d, which the CLI honours for every user.
Proven to run. The live test calls az account show with no login and
expects the CLI to get all the way to asking for az login.
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
azure-chaos-studio
Chaos Studio has no stop condition: an experiment runs for its actions' duration or until somebody presses Stop, so the duration is the only guardrail and every action here is capped. The experiment acts as its own identity and fails safely without a role on each target; every fault it can inject is a capability somebody enabled on an onboarded target, so the scope cannot quietly widen.
azure-data-factory
The managed virtual network cannot be turned on after creation, and without it the integration runtime that copies your data reaches every source over public endpoints; the studio endpoint is public by default; and a factory with no git repository keeps its pipelines only in the service, with no review. Managed VNet on, studio private, git required, Key Vault linked for secrets.
azure-app-configuration
local_auth_enabled defaults true and the keys carry no identity: a read key reads every value, cannot be scoped, and is revoked only by regenerating it for everybody. Purge protection defaults off, and purging frees the name - which frees the endpoint your applications trust.
azure-devops
Bootstraps an Azure DevOps project with an initialized Git repository and a YAML build pipeline - repeatable team setup as code.
azure-jenkins
Self-hosted Jenkins on a hardened Azure Linux VM - self-contained vnet/subnet/NSG, SSH-key auth only, managed-disk encryption, Jenkins installed via cloud-init.