Installing Azure CLI to Chromebook

I was asked to contribute to a white-paper for Azure container services and as part of that task I naturally wanted to install the CLI. No problem to do so on Linux and Windows, but I encountered some problems when doing so for Termux and Chromebook. This post details how to resolve the issue on a Chromebook or other locked down environment.

During installation the Azure CLI script assumes it can install dependencies to a location forbidden by Android (and Termux). On a hunch I guessed this could be resolved by a user folder virtual environment, instead of a system install, and with a little investigation of exceptions, I was able to get az cli working just fine.

1. Install the python packages into a virtual environment

These steps are essentially what the standard Azure CLI install does, but this method installs ffi and other dependencies into a virtualenv to avoid problems with Android file permissions.

$ pkg install openssl-dev libffi-dev python-dev python
$ pip install --user virtualenv
$ virtualenv /home/lib/azure-cli
$ /home/lib/azure-cli/bin/pip install cffi
$ /home/lib/azure-cli/bin/pip install azure-cli
$ /home/lib/azure-cli/bin/pip install --upgrade --force-reinstall azure-nspkg azure-mgmt-nspkg

2. Add shell script for command completion

Create az.completion in /home/lib/azure-cli, or wherever you installed Azure CLI files to have command completion.

Note that IFS in line 2 is a Ctrl-K; download the raw file from gist if needed.

3. Enable bash command completion

Edit ~/.bashrc to include completion support for Azure CLI; in my example below I add Azure CLI completion on the last line.

4. Create a shell script to invoke Azure CLI

Create the script az and add it to path; mine is in /home/bin/az