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 v"m-$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)"
Install dependencies
sudo apt-get install build-essential
curl -LO https://go.dev/dl/go1.22.2.linux-amd64.tar.gz
rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
#Add to .bashrc
export PATH=$PATH:/usr/local/go/bin
go version![image](https://gist.github.com/assets/18238335/98c50391-b1a1-4666-ad2b-5694ee60bd3a)
https://golangci-lint.run/welcome/install/#binaries
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-amd64
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
brew install 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'
#AKS
# export AKS_GOPROXY_TOKEN=c24nxqpj4a35st5wzzlhxh5v2w4n462an5y6dwwce5rvsfsnajoa
# export GOPROXY=https://whgriffi:2afiaa2ewtsl2v6rx6rli4pbywlfgbuprhomywceed6mhs33ccna@goproxyprod.goms.io
# export GOPRIVATE="goms.io/aks/*,go.goms.io/aks/*,go.goms.io/fleet*"
# export GONOPROXY=none
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
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
sudo apt-get remove containerd.io
sudo apt install docker.io
sudo apt-get install -y build-essential
rm -rf ./docker.sh
sudo docker login
As you build you will generate docker images, and automatically push to your repo
sudo usermod -a -G docker ${USER}
relogin after this command
sudo docker logout
sudo docker login
verify it works
docker run hello-world
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