cachecloud安装部署

 

项目地址:https://github.com/sohutv/cachecloud

 

# 初始化数据库

默认插入admin超级管理员,用户名admin, 密码:admin

安装mysql

yum -y install mariadb mariadb-server mariadb-devel

systemctl enable mariadb

systemctl start mariadb

 

# clone项目并导入mysql数据 

cd /usr/local/src

git clone https://github.com/sohutv/cachecloud.git

cd /usr/local/src/cachecloud/script

 

cd 

如果mysql是5.5的,修改下cachecloud.sql 745行,内容修改为如下内容,5.7版本的不用修改

`service_time` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT '上线时间'

 

进入mysql

创建数据库

create database `cache_cloud` default character set utf8 COLLATE  utf8_general_ci;

grant all on cache_cloud.* to admin@'localhost' identified by 'admin';

source cachecloud.sql;

 

 

# CacheCloud项目配置

cd /usr/local/src/cachecloud

编辑配置文件: cat cachecloud-open-web/src/main/swap/online.properties

cachecloud.db.url = jdbc:mysql://127.0.0.1:3306/cache_cloud
cachecloud.db.user = admin
cachecloud.db.password = admin
cachecloud.maxPoolSize = 20

isClustered = true
isDebug = false
spring-file=classpath:spring/spring-online.xml
log_base=/opt/cachecloud-web/logs
web.port=8585
log.level=WARN

 

安装maven

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

解压到 /usr/local/maven

maven配置阿里云中央仓库(加速包的下载)

编辑 /usr/local/maven/conf/settings.xml,mirrors 标签内添加


      alimaven
      aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/
      central       

 

 

把 /usr/local/maven/bin 添加到系统环境变量

. /etc/prefile

 cd /usr/local/src/cachecloud

mvn clean compile install -Ponline

mkdir -p /opt/cachecloud-web

cp cachecloud-open-web/target/cachecloud-open-web-1.0-SNAPSHOT.war /opt/cachecloud-web

cp cachecloud-open-web/src/main/resources/cachecloud-web.conf /opt/cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.conf

cp script/start.sh /opt/cachecloud-web

cp script/stop.sh /opt/cachecloud-web

 chmod +x /opt/cachecloud-web/*.sh

 

修改 /opt/cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.conf 

PID_FOLDER=/opt/cachecloud-web
LOG_FOLDER=/opt/cachecloud-web/logs
LOG_FILENAME=cachecloud-web.log
APP_NAME=cachecloud-web
RUN_ARGS=
JAVA_HOME=/usr/local/jdk
JAVA_OPTS="-server -Xmx4g -Xms4g -Xss256k -XX:MaxDirectMemorySize=1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=40 -XX:+PrintGCDateStamps -Xloggc:/opt/cachecloud-web/logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/cachecloud-web/logs/java.hprof -XX:+DisableExplicitGC -XX:-OmitStackTraceInFastThrow -XX:+PrintCommandLineFlags -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.util.Arrays.useLegacyMergeSort=true -Dfile.encoding=UTF-8 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=22099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

 

 

启动cachecloud

sh  /opt/cachecloud-web/start.sh

登录cachecloud管理系统

cachecloud安装部署_第1张图片

 

修改redis配置模板:(不添加下面这两个参数,在建redis集群时将出现redis连接失败的情况)

1 修改Redis-standalone 模板

daemonize 值修改为yes

再添加一个参数

bind,值为 0.0.0.0

cachecloud安装部署_第2张图片

cachecloud安装部署_第3张图片

 

2 修改Redis-sentinel模板

添加一个参数

protected-mode 值 为no

cachecloud安装部署_第4张图片

 

# 添加主机

cachecloud安装部署_第5张图片

 

要求所有的主机节点,ssh端口一致,用于控制节点的用户相同(该用户为普通可ssh远程登录的用户即可),如果是用密码则要求密码也相同,redis也将用这个用户运行。

 

如果用ssh key连接:

在cachecloud 服务器上生成key

ssh-keygen  # 使用root生效ssh key,生成的公钥位于:cat /root/.ssh/id_rsa.pub ,把该文件内容更新到 系统配置管理中的 公钥地址 项

ssh-copy-id cachecloud@redis节点Ip    # cachecloud为上面设置的用户,如果ssh端口不是22,可以用参数-p 端口来指定ssh端口,有多少节点执行多少次

 

执行初始化脚本:

把cachecloud 项目中 cachecloud/script/cachecloud-init.sh 复制到redis节点的主机上,修改安装的redis版本,建议所有节点的redis版本一致

#!/bin/bash

############################################################################
# @desc: 
#	- 1. create user;
#	- 2. create default directories and authorize;
#	- 3. @usage: sh cachecloud-init.sh [username]
# @author: leifu
# @time: 
###########################################################################

set -o nounset
set -o errexit

readonly redisDir="/opt/cachecloud/redis"
readonly redisTarGz="redis-3.2.12.tar.gz"


# check if the user exists
checkExist() {
	local num=`cat /etc/passwd | grep -w $1 | wc -l`
		 
	#cat /etc/passwd | grep -q "$1"
	if [[ $num == 1 ]]; then
		echo "user $1 exists, overwrite user and *init all data*: [y/n]?"
		read replace
		if [[ ${replace} == "y" ]]; then
			echo "delete existed user: $1."
			userdel -r "$1"
			createUser "$1"
			init "$1"
			return 0
		fi
	else
		createUser "$1"
		init "$1"
	fi
	return 0
}


# create the user
createUser() {
	# create a user 
	useradd -m -d /home/$1 -s /bin/bash $1

	# give the user a password
	passwd $1

	# add the user to sudoers
	#	echo "$1	ALL=(ALL)   ALL" >> /etc/sudoers

	#  Maximum number of days between password change
	chage -M 9999 $1
	echo "OK: create user: $1 done"

}

# create defautl dirs and authorize
init() {
	# create working dirs and a tmp dir
	mkdir -p /opt/cachecloud/data
	mkdir -p /opt/cachecloud/conf
	mkdir -p /opt/cachecloud/logs
	mkdir -p /opt/cachecloud/redis
	mkdir -p /tmp/cachecloud

	# change owner
	chown -R $1:$1 /opt/cachecloud
	chown -R $1:$1 /tmp/cachecloud
	echo "OK: init: $1 done"
}



# install redis 
installRedis() {
	#which redis-server
	#if [[ $? == 0 ]]; then
	#	echo "WARN: redis is already installed, exit."
	#	return
	#fi

	yum install -y gcc
	mkdir -p ${redisDir} && cd ${redisDir}
	wget http://download.redis.io/releases/${redisTarGz} && mv ${redisTarGz} redis.tar.gz && tar zxvf redis.tar.gz --strip-component=1
	make && make install
	if [[ $? == 0 ]]; then
		echo "OK: redis is installed, exit."
		chown -R $1:$1 ${redisDir}
		export PATH=$PATH:${redisDir}/src
		return
	fi
	echo "ERROR: redis is NOT installed, exit."
}

username=$1
checkExist "${username}"
installRedis "${username}"

 

执行脚本初始化:

  • (a). 使用root登录目标服务器。
  • (b). 将cachecloud-init.sh脚本拷贝到目标服务器当前用户目录下。
  • (c). 执行 sh cachecloud-init.sh ${yourusername}
  • (d). 两次确认密码
  • (e). 一路安装直到成功。

脚本作用:

  • (a). 创建cachecloud项目用户:因为cachecloud项目的部分功能(redis启动、服务器监控)是通过ssh完成的,所以这里的用户和密码要和项目中的相对应,具体详见第三节。

  • (b). 创建cachecloud项目的工作目录、数据目录、配置目录、日志目录、redis安装目录、临时目录等等。(/opt/cachecloud/data、/opt/cachecloud/conf、/opt/cachecloud/logs、/opt/cachecloud/redis、/tmp/cachecloud)

  • (c). 安装脚本中指定的release版本的Redis

 

cachecloud安装部署_第6张图片

 

添加好主机后,过一会有相关的检测信息,

Quartz管理会两相相应的定时任务,如果没有出现,可以尝试把cachecloud服务停止再开启

cachecloud安装部署_第7张图片

 

# 注册用户

cachecloud安装部署_第8张图片

 

用户密码就是用户名

cachecloud安装部署_第9张图片

admin管理员登录后台审核用户通过

cachecloud安装部署_第10张图片

 

 cachecloud安装部署_第11张图片

 

# 新建redis应用(Redis-standalone)

test3登录cachecloud

cachecloud安装部署_第12张图片

 

 

 cachecloud安装部署_第13张图片

 

 

管理员登录后台通过审核并执行部署等

cachecloud安装部署_第14张图片

 

cachecloud安装部署_第15张图片

 

如果要设置redis密码,则在redis密码后设置密码,再点击后面的更新按钮

接下来,按要求把部署详情写好

点击 格式检查

最后点击部署

cachecloud安装部署_第16张图片

 

cachecloud安装部署_第17张图片

部署成功后,点击通过即可

 

申请用户查看redis详情

cachecloud安装部署_第18张图片

cachecloud安装部署_第19张图片

cachecloud安装部署_第20张图片

通过Rest API可以查看该redis应用详情,如下

带appKey的查询

 

新建Redis-sentinel类型应用

cachecloud安装部署_第21张图片

 

管理员通过审核

cachecloud安装部署_第22张图片

 

redis应用详情:

 redis应用运行,应用的启停、FailOver等

cachecloud安装部署_第23张图片

cachecloud安装部署_第24张图片

# redis-migrate-tool迁移工具部署 

redis-migrate-tool项目: https://github.com/vipshop/redis-migrate-tool

找一台机单独部署redis-migrate-tool

安装依赖环境

yum -y install automake libtool autoconf bzip2 

mkdir /opt/cachecloud/

cd /opt/cachecloud/

git clone https://github.com/vipshop/redis-migrate-tool.git

cd redis-migrate-tool

编译

autoreconf -fvi; ./configure; make

验证安装是否成功

src/redis-migrate-tool -h

useradd {cachecloud-ssh-username}

passwd {cachecloud-ssh-username}   # 密码设置为 {cachecloud-ssh-password}

chown -R {cachecloud-ssh-username}.{cachecloud-ssh-username} /opt/cachecloud/redis-migrate-tool

 

添加迁移主机

cachecloud安装部署_第25张图片

 

cachecloud安装部署_第26张图片

 

cachecloud安装部署_第27张图片

 

转载于:https://www.cnblogs.com/linkenpark/p/9921521.html

你可能感兴趣的:(数据库,java,运维)