Using ChromeOS / ChromeOS Flex with Azure CLI Tools
What is the Azure CLI?
The Azure Command-Line Interface (CLI) is a cross-platform command-line tool used to create, manage, and configure Azure resources efficiently through interactive commands or scripts. It provides granular control over resources and is a key tool for developers, IT administrators, and DevOps engineers.
Full details are available here:
Azure Command-Line Interface (CLI) documentation
Why would I want to use Azure CLI Tools from the Linux VM on ChromeOS Flex?
ChromeOS and ChromeOS Flex provide a standard Debian 12 Linux VM as part of their developer options that has the foundational tools for but can be customized to provide a complete developer environment.
This tutorial uses the Azure CLI installation and extends the Linux VM in ChromeOS Flex to allow local development.
Initial Environment Setup
Activate the Linux VM in ChromeOS Flex:
https://support.google.com/chromebook/answer/9145439?hl=en
Make sure to extend the initial disk space to 64GB or higher when setting up the VM:
Verifying Linux VM Setup
Start the Linux VM and open the shell:
Get all Local Linux VM Updates:
This step makes sure that the Linux VM has all Local updates.
sudo apt-get update
sudo apt-get upgrade
Add basic development tools to the Linux VM:
sudo apt-get install git
sudo apt-get install curl
sudo apt install build-essential
For a fresh installation — this make take 3–4 minutes to pull all required package dependencies.
Python Version Management
One of the downsides of the wide deployment of Python has been managing the language versions across platforms and maintaining a supported version.
The pyenv tool enables deploying consistent versions of Python:
GitHub - pyenv/pyenv: Simple Python version management
As of writing — the mainstream python version is 3.13. To validate your current Python:
xbill@penguin:~$ python --version
Python 3.13.11
Installing Azure CLI
The latest Azure CLI is available here:
Install the Azure CLI on Linux
To do a quick install-
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
This will extract the package:
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
azure-cli is already the newest version (2.84.0-1~bookworm).
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
You can then validate the version:
xbill@penguin:~$ az --version
azure-cli 2.84.0
core 2.84.0
telemetry 1.1.0
Dependencies:
msal 1.35.0b1
azure-mgmt-resource 24.0.0
Python location '/opt/az/bin/python3'
Config directory '/home/xbill/.azure'
Extensions directory '/home/xbill/.azure/cliextensions'
Python (Linux) 3.13.11 (main, Feb 25 2026, 02:29:30) [GCC 12.2.0]
Legal docs and information: aka.ms/AzureCliLegal
Your CLI is up-to-date.
xbill@penguin:~$
Setting Up the Azure CLI
Full step by step instructions are available here:
Get started with Azure Command-Line Interface (CLI)
https://learn.microsoft.com/en-us/cli/azure/get-started-with-azure-cli?view=azure-cli-latest
For short-term sessions- login to the Azure Console:
xbill@penguin:~$ az login
A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
Retrieving tenants and subscriptions for the selection...
[Tenant and subscription selection]
No Subscription name Subscription ID Tenant
----- -------------------- ------------------------------------ -----------------
[1] * Azure subscription 1 3db3ce66-50b6-4d11-91ef-5950cf4039ed Default Directory
The default is marked with an *; the default tenant is 'Default Directory' and subscription is 'Azure subscription 1' (3db3ce66-50b6-4d11-91ef-5950cf4039ed).
Select a subscription and tenant (Type a number or Enter for no changes):
Tenant: Default Directory
Subscription: Azure subscription 1 (3db3ce66-50b6-4d11-91ef-5950cf4039ed)
[Announcements]
With the new Azure CLI login experience, you can select the subscription you want to use more easily. Learn more about it and its configuration at https://go.microsoft.com/fwlink/?linkid=2271236
If you encounter any problem, please open an issue at https://aka.ms/azclibug
[Warning] The login output has been updated. Please be aware that it no longer displays the full list of available subscriptions by default.
Testing the CLI Tools
Once the az tools have been installed and configured- they can be used directly from the command line in the ChromeOS Shell:
xbill@penguin:~$ az storage container list --account-name cs210032000655adffb --auth-mode login
[
{
"deleted": null,
"encryptionScope": {
"defaultEncryptionScope": "$account-encryption-key",
"preventEncryptionScopeOverride": false
},
"immutableStorageWithVersioningEnabled": false,
"metadata": null,
"name": "my-azure-bucket",
"properties": {
"etag": "\"0x8DE836B85528A08\"",
"hasImmutabilityPolicy": false,
"hasLegalHold": false,
"lastModified": "2026-03-16T14:51:35+00:00",
"lease": {
"duration": null,
"state": "available",
"status": "unlocked"
},
"publicAccess": null
},
"version": null
}
]
Taking it to the Next Level — Gemini CLI
Install Gemini CLI in ChromeOS:
npm install -g @google/gemini-cli
A pre-built Git repo with tools for working with Gemini CLI and Azure is available here:
git clone https://gitHub.com/xbill9/gemini-cli-azure
Then Gemini CLI has full visibility and support for the Azure tools along with the GEMINI.md configuration file:
This is a multi linux git repo hosted at:
github.com/xbill9/gemini-cli-azure
You are a cross platform developer working with
Microsoft Azure and Google Cloud
You can use the Azure CLI :
https://learn.microsoft.com/en-us/cli/azure/install-azure-cli
https://learn.microsoft.com/en-us/cli/azure/
https://learn.microsoft.com/en-us/cli/azure/reference
https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?view=azure-cli-latest&pivots=apt
## Azure CLI Tools
You can use the Azure CLI to manage resources across Azure Storage, Virtual Machines, and other services.
- **List Resource Groups** : `az group list -o table`
- **List Storage Accounts** : `az storage account list -o table`
- **List Virtual Machines** : `az vm list -d -o table`
### Azure Update Script
- `azure-update`: This script is specifically for Azure Linux environments. It updates all packages and ensures necessary libraries are installed.
## Automation Scripts
This repository contains scripts for updating various Linux environments and tools:
- `linux-update`: Detects OS (Debian/Ubuntu/Azure Linux) and runs the corresponding update scripts.
- `azure-update`: Updates Azure Linux packages and installs necessary dependencies.
- `debian-update`: Updates Debian/Ubuntu packages and installs `git`.
- `gemini-update`: Updates the `@google/gemini-cli` via npm and checks versions of Node.js and Gemini.
- `nvm-update`: Installs NVM (Node Version Manager) and Node.js version 25.
Running the az CLI from Gemini CLI
Finally — the full suite of az CLI tools is available from Gemini CLI:
cd gemini-cli-azure
gemini
> describe my azure buckets
✦ You have one primary Azure storage account that serves as the repository for your "buckets" (containers and shares).
Storage Account: cs210032000655adffb
* Purpose: Primarily used for Azure Cloud Shell storage (as indicated by tags).
* Resource Group: cloud-shell-storage-eastus
* Location: eastus (East US)
* SKU: Standard_LRS (Locally Redundant Storage)
* Kind: StorageV2 (General Purpose v2)
---
1. Blob Containers ("Buckets")
Your account has one blob container:
* Name: my-azure-bucket
* Status: Private (Public access is disabled)
* Contents: This container is currently empty.
2. File Shares
There is one file share associated with your Cloud Shell environment:
* Name: cs-xbill-glitnir-com-10032000655adffb
* Contents: Contains a .cloudconsole/ directory, which holds configuration and persistence files for your Azure CLI/Cloud Shell sessions.
---
Summary: Your environment is very lean, with a single storage account mostly dedicated to Cloud Shell persistence, plus one user-created
empty bucket named my-azure-bucket.
? for shortcut
Summary
The Linux development environment was enabled on a standard ChromeOS environment. Then — the Azure CLI tools were downloaded and installed. The final step was to configure and test the az CLI tools directly from the Linux VM.



Top comments (0)