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 --public-ip-address-dns-name "ip-$random"
ssh -i ~/.ssh/id_rsa "$admin@ip-$random.eastus.cloudapp.azure.com"
/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)"
sudo apt-get install build-essential
curl -LO https://go.dev/dl/go1.23.0.linux-amd64.tar.gz
rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.0.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.23.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 -LO https://get.helm.sh/helm-v3.15.4-linux-amd64.tar.gz
tar -zxvf helm-v3.15.4-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
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="$(brew --prefix golang)/libexec"
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
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