DEV Community

xbill for Google Developer Experts

Posted on • Originally published at xbill999.Medium on

Running Azure CLI Tools on ChromeOS / ChromeOS Flex

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
Enter fullscreen mode Exit fullscreen mode

Add basic development tools to the Linux VM:

sudo apt-get install git
sudo apt-get install curl
sudo apt install build-essential
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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:~$ 
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

Enter fullscreen mode Exit fullscreen mode

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
  }
]
Enter fullscreen mode Exit fullscreen mode

Taking it to the Next Level — Gemini CLI

Install Gemini CLI in ChromeOS:

npm install -g @google/gemini-cli
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)