Skip to content

Instantly share code, notes, and snippets.

@mlgrm
Last active April 8, 2019 13:22
Show Gist options
  • Save mlgrm/ea24ba518ded216923685abae2a06c24 to your computer and use it in GitHub Desktop.
Save mlgrm/ea24ba518ded216923685abae2a06c24 to your computer and use it in GitHub Desktop.
#!/bin/bash
# usage: curl -sL bit.ly/mlgrm-postgres | EMAIL=mail@example.com [PASSWORD=xxxxxxx] bash
set -e
[[ -z $PASSWD ]] && PASSWD=$(apg -n 1) && >&2 echo "password: $PASSWD"
[[ -z $EMAIL ]] && >&2 echo "need to set EMAIL" && exit
[[ -z $DOCKER_HOST ]] || ! docker ps 2>&1 > /dev/null && >&2 echo "need DOCKER_HOST defined and running docker"
#if [[ -z $(docker ps --filter name=traefik -q) ]]; then curl -sL bit.ly/mlgrm-traefik-setup | bash; fi
if ! gcloud compute instances describe "$HOST" --format json| jq -r '.tags.items[]' | grep -q '^postgres$'; then
gcloud compute instances add-tags "$HOST" --tags postgres
fi
if [[ -z $(docker network list --filter name=postgres -q) ]]; then docker network create postgres; fi
curl -sL bit.ly/mlgrm-traefiker |
HOSTNAME=pgadmin \
bash -s -- run -d \
--name pgadmin \
-v /mnt/disks/data/pgadmin:/var/lib/pgadmin \
-e PGADMIN_DEFAULT_EMAIL=$EMAIL \
-e PGADMIN_DEFAULT_PASSWORD=$PASSWD \
--network postgres \
dpage/pgadmin4
docker run -d \
-v /mnt/disks/data/postgresql:/var/lib/postgresql \
--name postgres \
-h postgres \
-e POSTGRES_PASSWORD=$PASSWD \
--network postgres \
-p 5432:5432 \
postgres
#!/bin/bash
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>/var/log/first-boot.log 2>&1
set -x
set -e
# set up data disk as /var/lib
# export data="/dev/disk/by-id/google-data"
# try to mount data partition
if ! mkdir -p /mnt/disks/data && \
mount /dev/disk/by-id/google-data /mnt/disk/data; then
# format data disk
mkfs -t ext4 /dev/disk/by-id/google-data
# mount /dev/disk/by-id/google-data /mnt/
# copy persistent data to data disk
# tar c -C /var/lib . | tar x -C /mnt
# umount /mnt
mount /dev/disk/by-id/google-data /mnt/disk/data
fi
echo -e "/dev/disk/by-id/google-data /mnt/disk/data ext4 errors=remount-ro 0 0" >> fstab
apt-get update && apt-get upgrade -y
# install docker
addgroup --system docker
adduser "joshua" docker
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io
# enable docker over tls
sed -ie 's/-H fd:\/\/ //' /lib/systemd/system/docker.service
cat > /etc/docker/daemon.json <<EOF
{
"tlsverify": true,
"tlscacert": "/etc/docker/tls/ca.pem",
"tlscert" : "/etc/docker/tls/server-cert.pem",
"tlskey" : "/etc/docker/tls/server-key.pem",
"hosts" : ["fd://", "tcp://0.0.0.0:2376"]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment