Skip to content

Instantly share code, notes, and snippets.

@whitneygriffith
Last active April 29, 2024 10:29
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save whitneygriffith/7e096aed97f86d489a9c91ad6d22a14e to your computer and use it in GitHub Desktop.
Save whitneygriffith/7e096aed97f86d489a9c91ad6d22a14e to your computer and use it in GitHub Desktop.

random=$RANDOM

subscriptionId=[Your Azure Subscription]

admin=azureuser

Azure

Do these on local environment

az login --use-device-code

az account set -s $subscriptionId

Create Resource Group

az group create --name "rg-$random" --location eastus

Create VM

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"

Connect to VM

ssh -i ~/.ssh/id_rsa "$admin@ip-$random.eastus.cloudapp.azure.com"

Install homebrew

https://brew.sh/

/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

Install Go

https://go.dev/doc/install

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)

Install Golangci

https://golangci-lint.run/welcome/install/#binaries

Install Kind

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

Install Kubectl

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

Install Helm

brew install helm

Install Github CLI

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

Install Tilt

curl -fsSL https://raw.githubusercontent.com/tilt-dev/tilt/master/scripts/install.sh | bash

Update .bashrc

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"

Install AZ CLI

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

Reset VM Password

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"

Install Docker

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

Login to docker (follow the prompts)

sudo docker login

As you build you will generate docker images, and automatically push to your repo

Configure Docker to work without sudo

sudo usermod -a -G docker ${USER}

relogin after this command

sudo docker logout

sudo docker login

verify it works

docker run hello-world

you may encounter premission issues on conf files, if so do the following

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R

sudo chmod g+rwx "/home/$USER/.docker" -R

Configure docker to start on boot

sudo systemctl enable docker.service

sudo systemctl enable containerd.service

Source code

mkdir repos

cd repos

git clone ...

Start VM

az vm start --resource-group rg-$random --name vm-$random

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment