mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-05 23:31:24 +00:00
93 lines
4.2 KiB
Bash
Executable File
93 lines
4.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
set -x
|
|
|
|
TEST_CONNECT=${TEST_CONNECT=1}
|
|
TEST_SSL=${TEST_SSL=1}
|
|
PACKAGE_INSTALL=${PACKAGE_INSTALL=1}
|
|
TEST_PORT_RANDOM=${TEST_PORT_RANDOM=1}
|
|
|
|
if [ "${PACKAGE_INSTALL}" ]; then
|
|
#for PKG in $(ls /tmp/buildd/*.deb | sed -e's,.*/,,;s,_.*,,' ); do
|
|
# apt-get install -y --force-yes "$PKG" ||:
|
|
# apt-get remove -y "$PKG" ||:
|
|
#done
|
|
|
|
dpkg --auto-deconfigure -i /tmp/buildd/*.deb ||:
|
|
apt install -y -f --allow-downgrades ||:
|
|
dpkg -l | grep clickhouse ||:
|
|
|
|
# Second install to replace debian versions
|
|
dpkg --auto-deconfigure -i /tmp/buildd/*.deb ||:
|
|
dpkg -l | grep clickhouse ||:
|
|
|
|
# Some test references uses specific timezone
|
|
ln -fs /usr/share/zoneinfo/Europe/Moscow /etc/localtime
|
|
echo 'Europe/Moscow' > /etc/timezone
|
|
dpkg-reconfigure -f noninteractive tzdata
|
|
fi
|
|
|
|
mkdir -p /etc/clickhouse-server/config.d /etc/clickhouse-client/config.d
|
|
|
|
if [ "${TEST_PORT_RANDOM}" ]; then
|
|
CLICKHOUSE_PORT_BASE=${CLICKHOUSE_PORT_BASE:=$(( ( RANDOM % 50000 ) + 10000 ))}
|
|
CLICKHOUSE_PORT_TCP=${CLICKHOUSE_PORT_TCP:=$(($CLICKHOUSE_PORT_BASE + 1))}
|
|
CLICKHOUSE_PORT_HTTP=${CLICKHOUSE_PORT_HTTP:=$(($CLICKHOUSE_PORT_BASE + 2))}
|
|
CLICKHOUSE_PORT_INTERSERVER=${CLICKHOUSE_PORT_INTERSERVER:=$(($CLICKHOUSE_PORT_BASE + 3))}
|
|
CLICKHOUSE_PORT_TCP_SECURE=${CLICKHOUSE_PORT_TCP_SECURE:=$(($CLICKHOUSE_PORT_BASE + 4))}
|
|
CLICKHOUSE_PORT_HTTPS=${CLICKHOUSE_PORT_HTTPS:=$(($CLICKHOUSE_PORT_BASE + 5))}
|
|
fi
|
|
|
|
export CLICKHOUSE_PORT_TCP=${CLICKHOUSE_PORT_TCP:=9000}
|
|
export CLICKHOUSE_PORT_HTTP=${CLICKHOUSE_PORT_HTTP:=8123}
|
|
export CLICKHOUSE_PORT_INTERSERVER=${CLICKHOUSE_PORT_INTERSERVER:=9009}
|
|
export CLICKHOUSE_PORT_TCP_SECURE=${CLICKHOUSE_PORT_TCP_SECURE:=9440}
|
|
export CLICKHOUSE_PORT_HTTPS=${CLICKHOUSE_PORT_HTTPS:=8443}
|
|
|
|
if [ "${TEST_CONNECT}" ]; then
|
|
sed -i 's/ssl_conf = ssl_sect/#ssl_conf = ssl_sect/g' /etc/ssl/openssl.cnf
|
|
cat /etc/ssl/openssl.cnf
|
|
[ "${TEST_PORT_RANDOM}" ] && echo "<yandex><http_port>${CLICKHOUSE_PORT_HTTP}</http_port><tcp_port>${CLICKHOUSE_PORT_TCP}</tcp_port><interserver_http_port>${CLICKHOUSE_PORT_INTERSERVER}</interserver_http_port></yandex>" > /etc/clickhouse-server/config.d/port.xml
|
|
|
|
if [ "${TEST_SSL}" ]; then
|
|
CLICKHOUSE_SSL_CONFIG="<openSSL><client><verificationMode>none</verificationMode><invalidCertificateHandler><name>AcceptCertificateHandler</name></invalidCertificateHandler></client></openSSL>"
|
|
echo "<yandex><https_port>${CLICKHOUSE_PORT_HTTPS}</https_port><tcp_port_secure>${CLICKHOUSE_PORT_TCP_SECURE}</tcp_port_secure>${CLICKHOUSE_SSL_CONFIG}</yandex>" > /etc/clickhouse-server/config.d/ssl.xml
|
|
echo "<yandex><tcp_port>${CLICKHOUSE_PORT_TCP}</tcp_port><tcp_port_secure>${CLICKHOUSE_PORT_TCP_SECURE}</tcp_port_secure>${CLICKHOUSE_SSL_CONFIG}</yandex>" > /etc/clickhouse-client/config.xml
|
|
openssl dhparam -out /etc/clickhouse-server/dhparam.pem 256
|
|
openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt
|
|
chmod -f a+r /etc/clickhouse-server/* /etc/clickhouse-client/* ||:
|
|
CLIENT_ADD+="--secure --port ${CLICKHOUSE_PORT_TCP_SECURE}"
|
|
else
|
|
CLIENT_ADD+="--port ${CLICKHOUSE_PORT_TCP}"
|
|
fi
|
|
|
|
# For debug
|
|
# tail -n +1 -- /etc/clickhouse-server/*.xml /etc/clickhouse-server/config.d/*.xml ||:
|
|
|
|
function finish {
|
|
service clickhouse-server stop
|
|
tail -n 100 /var/log/clickhouse-server/*.log ||:
|
|
sleep 1
|
|
killall -9 clickhouse-server ||:
|
|
}
|
|
trap finish EXIT SIGINT SIGQUIT SIGTERM
|
|
|
|
service clickhouse-server start
|
|
sleep ${TEST_SERVER_STARTUP_WAIT:=5}
|
|
service clickhouse-server status
|
|
|
|
# TODO: remove me or make only on error:
|
|
tail -n100 /var/log/clickhouse-server/*.log ||:
|
|
|
|
clickhouse-client --port $CLICKHOUSE_PORT_TCP -q "SELECT * from system.build_options;"
|
|
clickhouse-client ${CLIENT_ADD} -q "SELECT toDateTime(1);"
|
|
|
|
( [ "${TEST_RUN}" ] && clickhouse-test --queries /usr/share/clickhouse-test/queries --tmp /tmp/clickhouse-test/ ${TEST_OPT} ) || ${TEST_TRUE:=true}
|
|
|
|
service clickhouse-server stop
|
|
|
|
fi
|
|
|
|
# Test debug symbols
|
|
# gdb -ex quit --args /usr/bin/clickhouse-server
|