Last active
July 18, 2022 20:11
-
-
Save jcorioland/a58cb4b9768a98bb67db3e4917356605 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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