[CP] add ip and port set in systemd
This commit is contained in:
		
							
								
								
									
										2
									
								
								deps/init/oceanbase.el7.aarch64.deps
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/init/oceanbase.el7.aarch64.deps
									
									
									
									
										vendored
									
									
								
							| @ -43,7 +43,7 @@ obdevtools-llvm-11.0.1-312022092921.el7.aarch64.rpm | |||||||
| [tools-deps] | [tools-deps] | ||||||
| devdeps-oblogmsg-1.0-52022113019.el7.aarch64.rpm | devdeps-oblogmsg-1.0-52022113019.el7.aarch64.rpm | ||||||
| devdeps-rocksdb-6.22.1.1-52022100420.el7.aarch64.rpm | devdeps-rocksdb-6.22.1.1-52022100420.el7.aarch64.rpm | ||||||
| obshell-4.2.2.0-102024011512.el7.aarch64.rpm target=community | obshell-4.2.2.0-112024013121.el7.aarch64.rpm target=community | ||||||
|  |  | ||||||
| [test-utils] | [test-utils] | ||||||
| ob-deploy-2.3.0-4.el7.aarch64.rpm target=community | ob-deploy-2.3.0-4.el7.aarch64.rpm target=community | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								deps/init/oceanbase.el7.x86_64.deps
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/init/oceanbase.el7.x86_64.deps
									
									
									
									
										vendored
									
									
								
							| @ -46,7 +46,7 @@ obdevtools-llvm-11.0.1-312022092921.el7.x86_64.rpm | |||||||
| [tools-deps] | [tools-deps] | ||||||
| devdeps-oblogmsg-1.0-52022113019.el7.x86_64.rpm | devdeps-oblogmsg-1.0-52022113019.el7.x86_64.rpm | ||||||
| devdeps-rocksdb-6.22.1.1-52022100420.el7.x86_64.rpm | devdeps-rocksdb-6.22.1.1-52022100420.el7.x86_64.rpm | ||||||
| obshell-4.2.2.0-102024011512.el7.x86_64.rpm target=community | obshell-4.2.2.0-112024013121.el7.x86_64.rpm target=community | ||||||
|  |  | ||||||
| [test-utils] | [test-utils] | ||||||
| ob-deploy-2.3.0-4.el7.x86_64.rpm target=community | ob-deploy-2.3.0-4.el7.x86_64.rpm target=community | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								deps/init/oceanbase.el8.aarch64.deps
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/init/oceanbase.el8.aarch64.deps
									
									
									
									
										vendored
									
									
								
							| @ -43,7 +43,7 @@ obdevtools-llvm-11.0.1-312022092921.el8.aarch64.rpm | |||||||
| [tools-deps] | [tools-deps] | ||||||
| devdeps-oblogmsg-1.0-52022113019.el8.aarch64.rpm | devdeps-oblogmsg-1.0-52022113019.el8.aarch64.rpm | ||||||
| devdeps-rocksdb-6.22.1.1-52022100420.el8.aarch64.rpm | devdeps-rocksdb-6.22.1.1-52022100420.el8.aarch64.rpm | ||||||
| obshell-4.2.2.0-102024011512.el8.aarch64.rpm target=community | obshell-4.2.2.0-112024013121.el8.aarch64.rpm target=community | ||||||
|  |  | ||||||
| [test-utils] | [test-utils] | ||||||
| ob-deploy-2.3.0-4.el8.aarch64.rpm target=community | ob-deploy-2.3.0-4.el8.aarch64.rpm target=community | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								deps/init/oceanbase.el8.x86_64.deps
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/init/oceanbase.el8.x86_64.deps
									
									
									
									
										vendored
									
									
								
							| @ -45,7 +45,7 @@ obdevtools-llvm-11.0.1-312022092921.el8.x86_64.rpm | |||||||
| [tools-deps] | [tools-deps] | ||||||
| devdeps-oblogmsg-1.0-52022113019.el8.x86_64.rpm | devdeps-oblogmsg-1.0-52022113019.el8.x86_64.rpm | ||||||
| devdeps-rocksdb-6.22.1.1-52022100420.el8.x86_64.rpm | devdeps-rocksdb-6.22.1.1-52022100420.el8.x86_64.rpm | ||||||
| obshell-4.2.2.0-102024011512.el8.x86_64.rpm target=community | obshell-4.2.2.0-112024013121.el8.x86_64.rpm target=community | ||||||
|  |  | ||||||
| [test-utils] | [test-utils] | ||||||
| ob-deploy-2.3.0-4.el8.x86_64.rpm target=community | ob-deploy-2.3.0-4.el8.x86_64.rpm target=community | ||||||
|  | |||||||
| @ -12,6 +12,10 @@ | |||||||
| yum install oceanbase-ce | yum install oceanbase-ce | ||||||
| systemctl start oceanbase | systemctl start oceanbase | ||||||
| ``` | ``` | ||||||
|  | 可以通过以下指令将oceanbase服务设置为开机自启动: | ||||||
|  | ```bash | ||||||
|  | systemctl enable oceanbase | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ## systemd介绍 | ## systemd介绍 | ||||||
| Systemd提供了自动化管理oceanbase的启动和停止,可以通过systemctl指令对oceanbase进行管理控制,例如: | Systemd提供了自动化管理oceanbase的启动和停止,可以通过systemctl指令对oceanbase进行管理控制,例如: | ||||||
|  | |||||||
| @ -12,6 +12,10 @@ Now systemd only support RPM platform and you can install and run oceanbase serv | |||||||
| yum install oceanbase-ce | yum install oceanbase-ce | ||||||
| systemctl start oceanbase | systemctl start oceanbase | ||||||
| ``` | ``` | ||||||
|  | You can set the OceanBase service to start automatically on boot using the following command: | ||||||
|  | ```bash | ||||||
|  | systemctl enable oceanbase | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ## Overview of systemd | ## Overview of systemd | ||||||
| Systemd provides automatic oceanbase startup and shutdown. It also enables manual server management using the systemctl command. For example: | Systemd provides automatic oceanbase startup and shutdown. It also enables manual server management using the systemctl command. For example: | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|     "obshell": { |     "obshell": { | ||||||
|         "agentInfo": { |         "agentInfo": { | ||||||
|             "ip": "127.0.0.1", |             "ip": "HOSTIP", | ||||||
|             "port": 2886 |             "port": 2886 | ||||||
|         }, |         }, | ||||||
|         "zoneName": "zone1" |         "zoneName": "zone1" | ||||||
| @ -16,7 +16,7 @@ | |||||||
|             "scope": { |             "scope": { | ||||||
|                 "type": "server", |                 "type": "server", | ||||||
|                 "target": [ |                 "target": [ | ||||||
|                     "127.0.0.1:2886" |                     "HOSTIP:2886" | ||||||
|                 ] |                 ] | ||||||
|             }, |             }, | ||||||
|             "observerConfig": {} |             "observerConfig": {} | ||||||
|  | |||||||
| @ -1,16 +1,16 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
|  |  | ||||||
| DATE=`date '+%Y-%m-%d %H:%M:%S'` | DATE=`date '+%Y-%m-%d %H:%M:%S'` | ||||||
| ip='127.0.0.1' | cnf_file='/etc/oceanbase.cnf' | ||||||
|  | ip=`hostname -i` | ||||||
| port=2886 | port=2886 | ||||||
| url="http://$ip:$port" | url="http://localhost" | ||||||
| unix_socket="/tmp/obshell/$port.sock" |  | ||||||
| prefix=@CPACK_PACKAGING_INSTALL_PREFIX@ | prefix=@CPACK_PACKAGING_INSTALL_PREFIX@ | ||||||
|  | unix_socket="$prefix/run/obshell.sock" | ||||||
| obshell="$prefix/bin/obshell" | obshell="$prefix/bin/obshell" | ||||||
| report=3 | report=3 | ||||||
|  |  | ||||||
| function prepare_config_json { | function prepare_config_json { | ||||||
|   cnf_file='/etc/oceanbase.cnf' |  | ||||||
|   json_pre_file="$prefix/profile/oceanbase-pre.json" |   json_pre_file="$prefix/profile/oceanbase-pre.json" | ||||||
|   json_file="$prefix/profile/oceanbase.json" |   json_file="$prefix/profile/oceanbase.json" | ||||||
|   rm -rf $json_file |   rm -rf $json_file | ||||||
| @ -18,11 +18,19 @@ function prepare_config_json { | |||||||
|   local temp_file=$(mktemp) |   local temp_file=$(mktemp) | ||||||
|  |  | ||||||
|   while IFS='=' read -r key value; do |   while IFS='=' read -r key value; do | ||||||
|  |     # delete empty and comment line | ||||||
|  |     if [[ ! $key || $key =~ ^[[:space:]]*# ]]; then | ||||||
|  |         continue | ||||||
|  |     fi | ||||||
|     key=$(echo "$key" | awk '{$1=$1};1') |     key=$(echo "$key" | awk '{$1=$1};1') | ||||||
|     value=$(echo "$value" | awk '{$1=$1};1') |     value=$(echo "$value" | awk '{$1=$1};1') | ||||||
|     value=$(echo "$value" | sed 's/^"//' | sed 's/"$//') |     value=$(echo "$value" | sed 's/^"//' | sed 's/"$//') | ||||||
|     if [[ -n "$key" && ! "$key" =~ ^\; ]]; then |     if [[ -n "$key" && ! "$key" =~ ^\; ]]; then | ||||||
|       if [[ $key == *"rootPwd"* ]]; then |       if [[ $key == *"ip"* ]]; then | ||||||
|  |         ip=$value | ||||||
|  |       elif [[ $key == *"obshellPort"* ]]; then | ||||||
|  |         port=$value | ||||||
|  |       elif [[ $key == *"rootPwd"* ]]; then | ||||||
|         jq --arg parent "oceanbase_ce" --arg child "cluster" --arg key "$key" --arg value "$value" '.[$parent][$child][$key] = $value' "$json_file" > "$temp_file" |         jq --arg parent "oceanbase_ce" --arg child "cluster" --arg key "$key" --arg value "$value" '.[$parent][$child][$key] = $value' "$json_file" > "$temp_file" | ||||||
|         mv "$temp_file" "$json_file" |         mv "$temp_file" "$json_file" | ||||||
|       else |       else | ||||||
| @ -31,6 +39,8 @@ function prepare_config_json { | |||||||
|       fi |       fi | ||||||
|     fi |     fi | ||||||
|   done < "$cnf_file" |   done < "$cnf_file" | ||||||
|  |   sed -i "s|2886|${port}|g" $json_file | ||||||
|  |   sed -i "s|HOSTIP|${ip}|g" $json_file | ||||||
| } | } | ||||||
|  |  | ||||||
| function do_reload_observer { | function do_reload_observer { | ||||||
| @ -89,7 +99,7 @@ function check_trace { | |||||||
|   local count=0 |   local count=0 | ||||||
|   echo "the $content trace id is $dag_trace" |   echo "the $content trace id is $dag_trace" | ||||||
|   while true; do |   while true; do | ||||||
|     response=$(curl --silent -XGET $url/api/v1/task/dag/$dag_trace) |     response=$(curl --silent -XGET --unix-socket $unix_socket $url/api/v1/task/dag/$dag_trace) | ||||||
|     state=$(echo "$response" | jq -r '.data.state') |     state=$(echo "$response" | jq -r '.data.state') | ||||||
|     echo "the response state is $state" |     echo "the response state is $state" | ||||||
|     if [ "x$state" = "xSUCCEED" ]; then |     if [ "x$state" = "xSUCCEED" ]; then | ||||||
| @ -167,12 +177,10 @@ function deploy_observer { | |||||||
| } | } | ||||||
|  |  | ||||||
| function start_observer { | function start_observer { | ||||||
|   prepare_config_json |  | ||||||
|   systemd-notify --ready |   systemd-notify --ready | ||||||
|   # check observer status |   # check observer status | ||||||
|   response=$(curl --silent -H "Content-Type: application/json" -X GET --unix-socket $unix_socket $url/api/v1/status) |   response=$(curl --silent -H "Content-Type: application/json" -X GET --unix-socket $unix_socket $url/api/v1/status) | ||||||
|   identity=$(echo "$response" | jq -r '.data.agent.identity') |   identity=$(echo "$response" | jq -r '.data.agent.identity') | ||||||
|   echo $identity |  | ||||||
|   systemd-notify "STATUS=Service is running" |   systemd-notify "STATUS=Service is running" | ||||||
|   if [ "x$identity" = "xCLUSTER AGENT" ]; then |   if [ "x$identity" = "xCLUSTER AGENT" ]; then | ||||||
|     echo "The observer is already bootstrap, please start it immediately" |     echo "The observer is already bootstrap, please start it immediately" | ||||||
| @ -192,7 +200,7 @@ function start_observer { | |||||||
|     trace=$(echo "$response" | jq -r '.data.id') |     trace=$(echo "$response" | jq -r '.data.id') | ||||||
|     check_trace $trace "start observer" 20 6 |     check_trace $trace "start observer" 20 6 | ||||||
|     if [ $? -eq 0 ]; then |     if [ $? -eq 0 ]; then | ||||||
|       /bin/bash $prefix/profile/telemetry.sh $report "12" |       /bin/bash $prefix/profile/telemetry.sh $report "12" >/dev/null 2>&1 | ||||||
|     fi |     fi | ||||||
|   elif [ "x$identity" = "xSINGLE" ]; then |   elif [ "x$identity" = "xSINGLE" ]; then | ||||||
|     # do config observer first |     # do config observer first | ||||||
| @ -207,7 +215,7 @@ function start_observer { | |||||||
|     trace=$(echo "$response" | jq -r '.data.id') |     trace=$(echo "$response" | jq -r '.data.id') | ||||||
|     check_trace $trace "start observer" 40 6 |     check_trace $trace "start observer" 40 6 | ||||||
|     if [ $? -eq 0 ]; then |     if [ $? -eq 0 ]; then | ||||||
|       /bin/bash $prefix/profile/telemetry.sh $report "11" |       /bin/bash $prefix/profile/telemetry.sh $report "11" >/dev/null 2>&1 | ||||||
|     fi |     fi | ||||||
|   else |   else | ||||||
|     # status is UNIDENTIFIED |     # status is UNIDENTIFIED | ||||||
| @ -239,7 +247,7 @@ function start_observer { | |||||||
|             echo "The agent dose not know the observer password" |             echo "The agent dose not know the observer password" | ||||||
|             echo "1. Please set environment: export OB_ROOT_PASSWORD={root_passowrd}" |             echo "1. Please set environment: export OB_ROOT_PASSWORD={root_passowrd}" | ||||||
|             echo "2. Kill all the obshell process" |             echo "2. Kill all the obshell process" | ||||||
|             echo "3. Restart the agent process: $prefix/bin/obshell admin start --ip 127.0.0.1 --port 2886" |             echo "3. Restart the agent process: $prefix/bin/obshell admin start --ip $ip --port $port" | ||||||
|         fi |         fi | ||||||
|         sleep 30 |         sleep 30 | ||||||
|     done |     done | ||||||
| @ -277,8 +285,8 @@ function reload_observer { | |||||||
|  |  | ||||||
| if [ "x$1" = "xstart" ]; then | if [ "x$1" = "xstart" ]; then | ||||||
|   echo "oceanbase service started at ${DATE}" |   echo "oceanbase service started at ${DATE}" | ||||||
|   # telemetry |   /bin/bash $prefix/profile/telemetry.sh $report "10" >/dev/null 2>&1 | ||||||
|   /bin/bash $prefix/profile/telemetry.sh $report "10" |   prepare_config_json | ||||||
|   if check_daemon_process; then |   if check_daemon_process; then | ||||||
|     echo "The agent service is exist" |     echo "The agent service is exist" | ||||||
|   else |   else | ||||||
|  | |||||||
| @ -1,5 +1,10 @@ | |||||||
|  | # The ip only can be set when first start up. | ||||||
|  | # If you want to change ip you have to uninstall oceanbase and delete the data folder. | ||||||
|  | # And then install and start the oceanbase with the new ip | ||||||
|  | ip=127.0.0.1 | ||||||
| mysqlPort=2881 | mysqlPort=2881 | ||||||
| rpcPort=2882 | rpcPort=2882 | ||||||
|  | obshellPort=2886 | ||||||
| rootPwd="" | rootPwd="" | ||||||
| redoDir=/var/lib/oceanbase/redo | redoDir=/var/lib/oceanbase/redo | ||||||
| dataDir=/var/lib/oceanbase/data | dataDir=/var/lib/oceanbase/data | ||||||
|  | |||||||
| @ -11,4 +11,4 @@ cp -f $prefix/profile/oceanbase.cnf /etc/oceanbase.cnf | |||||||
| systemctl daemon-reload | systemctl daemon-reload | ||||||
|  |  | ||||||
| # telemetry | # telemetry | ||||||
| /bin/bash $prefix/profile/telemetry.sh $1 | /bin/bash $prefix/profile/telemetry.sh $1 >/dev/null 2>&1 | ||||||
| @ -11,4 +11,4 @@ rm -f /etc/systemd/system/oceanbase.service /etc/oceanbase.cnf | |||||||
| systemctl daemon-reload | systemctl daemon-reload | ||||||
|  |  | ||||||
| # telemetry | # telemetry | ||||||
| /bin/bash $prefix/profile/telemetry.sh $1 | /bin/bash $prefix/profile/telemetry.sh $1 >/dev/null 2>&1 | ||||||
		Reference in New Issue
	
	Block a user
	 LINxiansheng
					LINxiansheng