terraform/huawei/cloud-init.yml (103 lines of code) (raw):
#cloud-config
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
packages:
- default-jre
- netcat
write_files:
- path: /run/shardingsphere-proxy.service
permissions: 0644
content: |
[Unit]
Description=ShardingSphere Proxy Service
Requires=network.target
After=network.target
[Service]
Type=forking
LimitNOFILE=65536
ExecStart=/usr/local/shardingsphere-proxy/bin/start.sh
ExecStop=/usr/local/shardingsphere-proxy/bin/stop.sh
Restart=always
RestartSec=3
StartLimitInterval=0
[Install]
WantedBy=default.target
%{ if element(version_elems, 0) <= 5 && element(version_elems, 1) < 3 }
- path: /run/server.yaml
permissions: 0644
content: |
mode:
type: Cluster
repository:
type: ZooKeeper
props:
namespace: governance_ds
server-lists: ${zk_servers}
retryIntervalMilliseconds: 500
timeToLiveSeconds: 60
maxRetries: 3
operationTimeoutMilliseconds: 500
rules:
- !AUTHORITY
users:
- root@%:root
- sharding@:sharding
provider:
type: ALL_PERMITTED
- !TRANSACTION
defaultType: XA
providerType: Atomikos
- !SQL_PARSER
sqlCommentParseEnabled: true
sqlStatementCache:
initialCapacity: 2000
maximumSize: 65535
parseTreeCache:
initialCapacity: 128
maximumSize: 1024
props:
max-connections-size-per-query: 1
kernel-executor-size: 16 # Infinite by default.
proxy-frontend-flush-threshold: 128 # The default value is 128.
proxy-hint-enabled: false
sql-show: false
check-table-metadata-enabled: false
# Proxy backend query fetch size. A larger value may increase the memory usage of ShardingSphere Proxy.
# The default value is -1, which means set the minimum value for different JDBC drivers.
proxy-backend-query-fetch-size: -1
proxy-frontend-executor-size: 0 # Proxy frontend executor size. The default value is 0, which means let Netty decide.
# Available options of proxy backend executor suitable: OLAP(default), OLTP. The OLTP option may reduce time cost of writing packets to client, but it may increase the latency of SQL execution
# and block other clients if client connections are more than `proxy-frontend-executor-size`, especially executing slow SQL.
proxy-backend-executor-suitable: OLAP
proxy-frontend-max-connections: 0 # Less than or equal to 0 means no limitation.
# Available sql federation type: NONE (default), ORIGINAL, ADVANCED
sql-federation-type: NONE
# Available proxy backend driver type: JDBC (default), ExperimentalVertx
proxy-backend-driver-type: JDBC
proxy-mysql-default-version: 5.7.22 # In the absence of schema name, the default version will be used.
proxy-default-port: 3307 # Proxy default port.
proxy-netty-backlog: 1024 # Proxy netty backlog.
%{ endif }
%{ if element(version_elems, 0) >= 5 && element(version_elems, 1) > 2 }
- path: /run/server.yaml
permissions: 0644
content: |
mode:
type: Cluster
repository:
type: ZooKeeper
props:
namespace: governance_ds
server-lists: ${zk_servers}
retryIntervalMilliseconds: 500
timeToLiveSeconds: 60
maxRetries: 3
operationTimeoutMilliseconds: 500
%{ endif }
- path: /run/install_shardingsphere_proxy.sh
permissions: 0700
content: |
#!/bin/bash
echo Installing ShardingSphere v${version}
wget -O /run/ss.tar.gz https://mirrors.huaweicloud.com/apache/shardingsphere/${version}/apache-shardingsphere-${version}-shardingsphere-proxy-bin.tar.gz
mkdir -p /usr/local/shardingsphere-proxy
tar xvf /run/ss.tar.gz --strip 1 -C /usr/local/shardingsphere-proxy
if [ -f /run/server.yaml ]; then
/bin/cp -avf /run/server.yaml /usr/local/shardingsphere-proxy/conf/server.yaml
fi
/bin/cp -avf /run/shardingsphere-proxy.service /usr/lib/systemd/system/shardingsphere-proxy.service
systemctl daemon-reload
systemctl enable shardingsphere-proxy
systemctl start shardingsphere-proxy
runcmd:
- bash /run/install_shardingsphere_proxy.sh