random=$RANDOM
subscriptionId=[Your Azure Subscription]
admin=azureuser
Do these on local environment
az login --use-device-code
az account set -s $subscriptionId
az group create --name "rg-$random" --location eastus
az vm create --resource-group "rg-$random" --name "vm-$random" --image Ubuntu2204 --admin-username $admin --generate-ssh-keys --public-ip-address-dns-name "ip-$random" --image Ubuntu2204 --data-disk-sizes 2048 --size Standard_D16s_v3
Without data disk
az vm create --resource-group "rg-$random" --name "vm-$random" --image Ubuntu2204 --admin-username $admin --generate-ssh-keys --public-ip-address-dns-name "ip-$random"
ssh -i ~/.ssh/id_rsa "$admin@ip-$random.eastus2.cloudapp.azure.com"
sudo apt-get install build-essential
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Add brew to PATH eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
curl -LO https://go.dev/dl/go1.23.3.linux-amd64.tar.gz
rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.3.linux-amd64.tar.gz
#Add to .bashrc
export PATH=$PATH:/usr/local/go/bin
go version
https://golangci-lint.run/welcome/install/#binaries
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.25.0/kind-linux-amd64 # get latest version from https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-release-binaries
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
rm -rf ./kind
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
# https://helm.sh/docs/intro/install/
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
curl -f https://raw.githubusercontent.com/jsturtevant/dotfiles/0b452b235d2a439ebf597dcf27b8f2c846975951/packages/github.sh > github.sh
chmod +x github.sh
./github.sh
git config --global user.name "Your Username"
git config --global user.email "Your email"
rm -rf ./github.sh
curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash
Append the below to ~/.bashrc
export PATH=$PATH:/home/azureuser/bin
export PATH=$PATH:/home/linuxbrew/.linuxbrew/bin/
export PATH=$PATH:/home/linuxbrew/.linuxbrew/bin/helm
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export GOBIN=${GOBIN:-$(go env GOPATH)/bin}
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin:/usr/local/go/bin"
# source '/home/azureuser/lib/azure-cli/az.completion'
alias k='kubectl'
alias kc='kubectl ctx'
alias buf='/home/linuxbrew/.linuxbrew/bin/buf'
sudo apt-get update
sudo apt-get install -y libssl-dev libffi-dev python3-dev build-essential
curl -L https://aka.ms/InstallAzureCli | bash
exec -l $SHELL
az login --use-device-code
az account set -s $subscriptionId
https://learn.microsoft.com/en-us/azure/virtual-machines/extensions/vmaccess-linux#reset-password
az vm user update --resource-group rg-$random --name vm-$random --username $admin --password "Set password here"
curl -f https://raw.githubusercontent.com/jsturtevant/dotfiles/main/packages/docker.sh > docker.sh
chmod +x docker.sh
./docker.sh
rm -rf ./docker.sh
sudo docker login
As you build you will generate docker images, and automatically push to your repo
The above docker.sh configures docker to work without sudo
verify it works
docker run hello-world
troubleshoot
sudo docker logout
sudo docker login
newgrp docker
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "/home/$USER/.docker" -R
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
mkdir repos
cd repos
git clone ...
az vm start --resource-group rg-$random --name vm-$random
All work is done on dev/rootaka /dev/sda as such make it most efficient. If needed increase the OS disk on Azure portal.
df -h
sudo apt-get update
sudo apt-get install --download-only -y cloud-guest-utils
sudo dpkg -i /var/cache/apt/archives/cloud-guest-utils*.deb
sudo growpart /dev/sda 1
sudo resize2fs /dev/sda1
df -h