|
| 1 | +#!/bin/bash |
| 2 | +set -euxo pipefail |
| 3 | + |
| 4 | +DIR=${0%/*} |
| 5 | +IMAGE2TEST="registry.gitlab.com/postgres-ai/database-lab/dblab-server:master" |
| 6 | +SOURCE_DBNAME="test" |
| 7 | +SOURCE_HOST="XXX" |
| 8 | +SOURCE_PASSWORD="XXX" |
| 9 | + |
| 10 | +### Step 1: Prepare a machine with two disks, Docker and ZFS |
| 11 | + |
| 12 | +source"${DIR}/_prerequisites.ubuntu.sh" |
| 13 | +source"${DIR}/_zfs.file.sh" |
| 14 | + |
| 15 | +### Step 2. Prepare database data directory |
| 16 | + |
| 17 | +### Step ?. Configure and launch the Database Lab server |
| 18 | +mkdir -p~/.dblab |
| 19 | +cp ./configs/config.example.logical_generic.yml~/.dblab/server_test.yml |
| 20 | +sed -ri's/^(\s\s)(port:.*$)/\1port: 12345/'~/.dblab/server_test.yml |
| 21 | +sed -ri's/^(\s*)(debug:.*$)/\1debug: true/'~/.dblab/server_test.yml |
| 22 | +sed -ri's/^(\s*)(pool:.*$)/\1pool: "test_pool"/'~/.dblab/server_test.yml |
| 23 | +sed -ri"s/^(\s*)(host: 34\.56\.78\.90$)/\1host:\"${SOURCE_HOST}\"/"~/.dblab/server_test.yml |
| 24 | +sed -ri"s/^(\s*)(dbname:.*$)/\1dbname:\"${SOURCE_DBNAME}\"/"~/.dblab/server_test.yml |
| 25 | +sed -ri"s/^(\s*)(password:.*$)/\1password:\"${SOURCE_PASSWORD}\"/"~/.dblab/server_test.yml |
| 26 | +sed -ri"s/^(\s*)(parallelJobs:.*$)/\1parallelJobs: 1/"~/.dblab/server_test.yml |
| 27 | +sed -ri"s/^(\s*)(forceInit:.*$)/\1forceInit: true/"~/.dblab/server_test.yml |
| 28 | + |
| 29 | +# TMP: turn off "initialize" completely |
| 30 | + |
| 31 | +sudo docker run \ |
| 32 | + --detach \ |
| 33 | + --name dblab_test \ |
| 34 | + --label dblab_control \ |
| 35 | + --privileged \ |
| 36 | + --publish 12345:12345 \ |
| 37 | + --volume /var/run/docker.sock:/var/run/docker.sock \ |
| 38 | + --volume /var/lib/dblab/data:/var/lib/dblab/data:rshared \ |
| 39 | + --volume~/.dblab/server_test.yml:/home/dblab/configs/config.yml \ |
| 40 | +"${IMAGE2TEST}" |
| 41 | + |
| 42 | +### Step ?. Setup Database Lab client CLI |