Skip to content

Instantly share code, notes, and snippets.

@jasonbronson
Last active June 8, 2021 15:19
Show Gist options
  • Save jasonbronson/b449276f2442172ed0f05c8e83f681da to your computer and use it in GitHub Desktop.
Save jasonbronson/b449276f2442172ed0f05c8e83f681da to your computer and use it in GitHub Desktop.
Rancher Docker Install Debian 10
#!/bin/sh
adduser --disabled-password --gecos "" jason
apt-get update
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io
docker run -d --restart=unless-stopped \
-p 8442:80 -p 8443:443 \
-v /opt/rancher:/var/lib/rancher \
--privileged \
rancher/rancher:latest
docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.8 --server https://68.183.154.117:8443 --token g5rg82spmc8fkg7z4sppq6mmwnpghgpd5p9c4gkwbs9lczt88zt95j --ca-checksum ae8f8e3067d295a9dee7d6d8ecf9c99200fe53ae27893ac652c7bd1999294b11 --etcd --controlplane --worker
apt install -y nginx certbot python3-certbot-nginx
curl -O https://temporary2020.s3.amazonaws.com/code.bronson.dev/fullchain.pem
curl -O https://temporary2020.s3.amazonaws.com/code.bronson.dev/privkey.pem
cat > /etc/nginx/sites-available/code-server <<EOL
server {
server_name code.bronson.dev;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/code.bronson.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/code.bronson.dev/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = code.bronson.dev) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name code.bronson.dev;
return 404; # managed by Certbot
}
EOL
ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/code-server
certbot --non-interactive --redirect --agree-tos --nginx -d code.bronson.dev -m jasonbronson+codeservercert@gmail.com
apt-get -y install git iproute2 procps lsb-release
curl -O https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz
tar xvf go1.16.5.linux-amd64.tar.gz
chown -R jason:jason ./go
mv go /usr/local
cat >> /home/jason/.profile <<EOL
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
EOL
mkdir /home/jason/work
chown -R jason:jason /home/jason/work
cat > /home/jason/.config/code-server/config.yaml <<EOL
bind-addr: 127.0.0.1:8080
auth: password
hashed-password: 5d087b3f979c99c8d32176a938c857e805f95ef75926e04bfb15ac1c03ef7eeb
cert: false
EOL
curl -fsSL https://code-server.dev/install.sh | sh
apt install -y docker-compose
code-server --install-extension 'golang.go'
systemctl enable --now code-server@jason
apt-get update \
; /usr/local/go/bin/go get -u -v \
golang.org/x/tools/gopls@latest \
golang.org/x/tools/cmd/guru \
golang.org/x/tools/cmd/gorename \
github.com/go-delve/delve/cmd/dlv \
github.com/rogpeppe/godef \
golang.org/x/tools/cmd/goimports \
golang.org/x/lint/golint
echo "export PATH=\$PATH:/usr/local/go/bin" >> /home/jason/.bashrc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment