Skip to content

Instantly share code, notes, and snippets.

@thorsager
Last active June 20, 2023 21:58
Show Gist options
  • Save thorsager/e7aa60b7e607d4d5bada77b765155e82 to your computer and use it in GitHub Desktop.
Save thorsager/e7aa60b7e607d4d5bada77b765155e82 to your computer and use it in GitHub Desktop.
Initial Ubuntu Setup
#!/usr/bin/env bash
# Script to install inital packages, services and utils on fresh ubuntu-host
set -e
GO_URL=https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
K9S_URL=https://github.com/derailed/k9s/releases/download/v0.27.4/k9s_Linux_amd64.tar.gz
DIVE_URL=https://github.com/wagoodman/dive/releases/download/v0.10.0/dive_0.10.0_linux_amd64.tar.gz
apt update
apt install -y apt-transport-https ca-certificates curl software-properties-common lsb-release gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod go+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /etc/apt/keyrings/microsoft.gpg
sudo chmod go+r /etc/apt/keyrings/microsoft.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/azure-cli.list > /dev/null
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-archive-keyring.gpg
sudo chmod go+r /etc/apt/keyrings/kubernetes-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" \
| sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null
curl -fsSL https://baltocdn.com/helm/signing.asc | gpg --dearmor -o /etc/apt/keyrings/helm.gpg
sudo chmod go+r /etc/apt/keyrings/helm.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" \
| sudo tee /etc/apt/sources.list.d/helm-stable-debian.list > /dev/null
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/hashicorp-archive-keyring.gpg
sudo chmod go+r /etc/apt/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/hashicorp.list > /dev/null
apt update
## Install git kubectl, helm and terraform
apt install -y azure-cli docker-ce build-essential git kubectl helm terraform
## Install golang
curl -fsSL "$GO_URL" -o /tmp/golang.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf /tmp/golang.tar.gz
sudo echo 'export PATH=$PATH:/usr/local/go/bin' > /etc/profile.d/golang.sh
rm -rf /tmp/golang.tar.gz
## Install k9s
curl -fsSL "$K9S_URL" -o /tmp/k9s.tar.gz
sudo tar -C /usr/local/bin -xzf /tmp/k9s.tar.gz k9s
rm -rf /tmp/k9s.tar.gz
## Install dive
curl -fsSL "$DIVE_URL" -o /tmp/dive.tar.gz
sudo tar -C /usr/local/bin -xzf /tmp/dive.tar.gz dive
rm -rf /tmp/dive.tar.gz
## Install kubectx
sudo rm -rf /usr/local/bin/kubectx /usr/local/bin/kubens /opt/kubectx && sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens
echo
echo -e "\033[0;31m**\033[0m \033[1;33mNow as your own user do\033[0m:"
echo " sudo usermod -aG docker \${USER}"
echo " az login"
echo " az acr login -n \${REGISTRY_NAME}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment