Skip to content

Instantly share code, notes, and snippets.

@mikemadisonweb
Last active March 20, 2024 11:50
Show Gist options
  • Save mikemadisonweb/ad36ad62e9323e80e77375d4afb54b51 to your computer and use it in GitHub Desktop.
Save mikemadisonweb/ad36ad62e9323e80e77375d4afb54b51 to your computer and use it in GitHub Desktop.
Install Golang, Docker, Docker-compose and Glide
#### Golang
apt update && apt install -y wget git-core
cd /tmp
wget --no-check-certificate https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz
tar -xzf ${GO_FILE}
mv go /usr/local/go
echo 'export PATH=$PATH:/usr/local/go/bin
export GOPATH=/var/www/go
export PATH=$PATH:$GOPATH/bin' >> /etc/profile
source /etc/profile
mkdir -p $GOPATH/src
mkdir -p $GOPATH/bin
mkdir -p $GOPATH/pkg
go version
#### Docker + Docker-compose
# Check that HTTPS transport is available to APT
if [ ! -e /usr/lib/apt/methods/https ]; then
sudo apt-get update
sudo apt-get install -y apt-transport-https
fi
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-cache policy docker-ce
sudo apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial
sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
echo Add group docker to current user
sudo usermod -a -G docker $USER
docker --version
docker-compose --version
#### Gitlab CI
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
apt install gitlab-runner
mkdir /gitlab
gitlab-runner uninstall
gitlab-runner install --working-directory /gitlab --user root
systemctl daemon-reload
systemctl restart gitlab-runner
#### Glide
sudo add-apt-repository ppa:masterminds/glide && sudo apt-get update
sudo apt-get install glide
glide --version
#### Kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
#### Minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.25.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
minikube start --vm-driver=none --v=3
#### Kubeadm
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubernetes-cni
go get github.com/kubernetes-incubator/cri-tools/cmd/crictl
swapoff -a
sudo sed -i.bak '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=YOUR_IP_ADDR
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
#### Helm
sudo apt install socat
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash
kubectl create -f /var/www/go/src/git.cpadev.com/widgets/core/kube/gitlab-registry-secret.yaml
kubectl create -f /var/www/go/src/git.cpadev.com/widgets/core/kube/storage-class.yaml
kubectl create -f /var/www/go/src/git.cpadev.com/widgets/core/kube/dashboard.yaml
kubectl create -f /var/www/go/src/git.cpadev.com/widgets/core/kube/admin.yaml
# helm init --client-only --tiller-tls --tiller-tls-cert $HOME/.helm/tiller.cert.pem --tiller-tls-key $HOME/.helm/tiller.key.pem --tiller-tls-verify --tls-ca-cert $HOME/.helm/ca.cert.pem
kubectl create -f /var/www/go/src/git.cpadev.com/widgets/core/kube/tiller.yaml
helm init --service-account tiller
#### Misc
mkdir /opt/traefik
touch /opt/traefik/acme.json && chmod 600 /opt/traefik/acme.json
apt autoremove -y
echo 'CURRENT_COLOR="blue"' >> /etc/environment
source /etc/environment
# kubectl patch node NODE_NAME -p '{"spec":{"taints":[]}}'
export DEPLOYMENT_COLOR=blue
envsubst < /var/www/go/src/git.cpadev.com/widgets/core/kube/values.dev.yaml | helm install --wait --timeout 240 -f - --name static /var/www/go/src/git.cpadev.com/widgets/core/kube/static
envsubst < /var/www/go/src/git.cpadev.com/widgets/core/kube/values.dev.yaml | helm install --wait --timeout 240 -f - --name proxy-gateway /var/www/go/src/git.cpadev.com/widgets/core/kube/proxy-gateway
# Import database here
envsubst < /var/www/go/src/git.cpadev.com/widgets/core/kube/values.dev.yaml | helm install --wait --timeout 240 -f - --name blue /var/www/go/src/git.cpadev.com/widgets/core/kube/dynamic
helm ls --all
echo Installation successfull!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment