63 lines
2.0 KiB
Bash
Executable File
63 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright 2020 PingCAP, Inc. Licensed under Apache-2.0.
|
|
|
|
set -eu
|
|
|
|
stop_services() {
|
|
killall -9 tidb-server || true
|
|
|
|
find "$DUMPLING_TEST_DIR" -maxdepth 1 -not -path "$DUMPLING_TEST_DIR" -not -name "*.log" | xargs rm -r || true
|
|
}
|
|
|
|
start_services() {
|
|
stop_services
|
|
echo "Ensure mysql can connected..."
|
|
|
|
i=0
|
|
while ! run_sql 'select 0 limit 0' > /dev/null; do
|
|
i=$((i+1))
|
|
if [ "$i" -gt 10 ]; then
|
|
echo 'Failed to ping MySQL Server'
|
|
exit 1
|
|
fi
|
|
sleep 3
|
|
done
|
|
|
|
echo "Generate TLS keys..."
|
|
openssl genrsa -out "$DUMPLING_TEST_DIR/ca.key" 2048
|
|
openssl req -new -batch -sha256 -subj '/CN=127.0.0.1/OU=ca' -key "$DUMPLING_TEST_DIR/ca.key" -out "$DUMPLING_TEST_DIR/ca.csr"
|
|
openssl x509 -req -sha256 -days 2 -in "$DUMPLING_TEST_DIR/ca.csr" -signkey "$DUMPLING_TEST_DIR/ca.key" -out "$DUMPLING_TEST_DIR/ca.pem" 2> /dev/null
|
|
for cluster in tidb dumpling; do
|
|
openssl genrsa -out "$DUMPLING_TEST_DIR/$cluster.key" 2048
|
|
openssl req -new -batch -sha256 -subj "/CN=127.0.0.1/OU=$cluster" -key "$DUMPLING_TEST_DIR/$cluster.key" -out "$DUMPLING_TEST_DIR/$cluster.csr"
|
|
openssl x509 -req -sha256 -days 1 -extensions EXT -extfile dumpling/tests/tls/ipsan.cnf -in "$DUMPLING_TEST_DIR/$cluster.csr" -CA "$DUMPLING_TEST_DIR/ca.pem" -CAkey "$DUMPLING_TEST_DIR/ca.key" -CAcreateserial -out "$DUMPLING_TEST_DIR/$cluster.pem" 2> /dev/null
|
|
done
|
|
|
|
cat > "$DUMPLING_TEST_DIR/tidb.toml" <<EOF
|
|
port = 4000
|
|
enable-table-lock = true
|
|
[status]
|
|
status-port = 10080
|
|
[log.file]
|
|
filename = '$DUMPLING_TEST_DIR/tidb.log'
|
|
[security]
|
|
ssl-ca = '$DUMPLING_TEST_DIR/ca.pem'
|
|
ssl-cert = '$DUMPLING_TEST_DIR/tidb.pem'
|
|
ssl-key = '$DUMPLING_TEST_DIR/tidb.key'
|
|
EOF
|
|
bin/tidb-server --config "$DUMPLING_TEST_DIR/tidb.toml" &
|
|
|
|
echo "Verifying TiDB is started..."
|
|
i=0
|
|
while ! curl -o /dev/null -sf "http://127.0.0.1:10080/status"; do
|
|
i=$((i+1))
|
|
if [ "$i" -gt 10 ]; then
|
|
echo 'Failed to start TiDB'
|
|
exit 1
|
|
fi
|
|
sleep 3
|
|
done
|
|
}
|
|
|