Skip to content

Instantly share code, notes, and snippets.

@jcorioland
Last active July 18, 2022 20:11
Show Gist options
  • Save jcorioland/a58cb4b9768a98bb67db3e4917356605 to your computer and use it in GitHub Desktop.
Save jcorioland/a58cb4b9768a98bb67db3e4917356605 to your computer and use it in GitHub Desktop.
#!/bin/bash
set -e
# Update + Common tools
echo "-> run apt-get update & upgrade"
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y build-essential git pkg-config jq curl wget unzip
# Install Azure CLI
echo "-> Install Azure CLI"
sudo apt-get install -y ca-certificates curl apt-transport-https lsb-release gnupg
curl -sL https://packages.microsoft.com/keys/microsoft.asc |
gpg --dearmor |
sudo tee /etc/apt/trusted.gpg.d/microsoft.asc.gpg > /dev/null
AZ_REPO=$(lsb_release -cs)
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ $AZ_REPO main" |
sudo tee /etc/apt/sources.list.d/azure-cli.list
sudo apt-get update
sudo apt-get -y install azure-cli
# Install Kubernetes Tools
# Kubectl
echo "-> Install latest Kubectl version"
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
sudo mv kubectl /usr/local/bin/kubectl
sudo chmod +x /usr/local/bin/kubectl
# Helm 3
echo "-> Install latest Helm 3 version"
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
rm ./get_helm.sh
# Kubectx
echo "-> Install kubectx"
git clone https://github.com/ahmetb/kubectx.git ~/.kubectx
COMPDIR=$(pkg-config --variable=completionsdir bash-completion)
sudo ln -sf ~/.kubectx/completion/kubens.bash $COMPDIR/kubens
sudo ln -sf ~/.kubectx/completion/kubectx.bash $COMPDIR/kubectx
# Terraform
echo "-> Install Latest Terraform version"
TERRAFORM_RELEASES_URL="https://releases.hashicorp.com/terraform"
GITHUB_RELEASES_URL="https://api.github.com/repos/hashicorp/terraform/releases"
TF_RELEASE="$( curl -s ${GITHUB_RELEASES_URL} | jq -r '.[] | select (.prerelease==false) | .tag_name' | head -n1 | grep -Eo '[0-9.]+' )"
curl -LO "${TERRAFORM_RELEASES_URL}/${TF_RELEASE}/terraform_${TF_RELEASE}_linux_amd64.zip"
sudo unzip "terraform_${TF_RELEASE}_linux_amd64.zip" -d "/usr/local/bin"
sudo chmod +x /usr/local/bin/terraform
rm "terraform_${TF_RELEASE}_linux_amd64.zip"
# Golang
echo "-> Install Golang 1.18.4"
GO_VERSION="1.18.4"
curl -LO "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz"
sudo tar -C /usr/local -xzf "go${GO_VERSION}.linux-amd64.tar.gz"
export PATH=$PATH:/usr/local/go/bin
export GOPATH="${HOME}/source/go"
mkdir -p $GOPATH
go version
rm "go${GO_VERSION}.linux-amd64.tar.gz"
# Customize .bashrc
echo "-> update .bashrc"
cat <<EOF >> ~/.bashrc
# init-wsl.sh updates
export PATH=\$PATH:~/.kubectx
export PATH=\$PATH:/usr/local/go/bin
export GOPATH="\${HOME}/source/go"
source <(kubectl completion bash)
alias k=kubectl
alias tfgraph='terraform graph | dot -Tsvg > graph.svg && cmd.exe /c "explorer.exe file://wsl%24/Ubuntu$(readlink -f graph.svg)"'
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment