项目地址: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 标签内添加

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

把 /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管理系统

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

1 修改Redis-standalone 模板

daemonize 值修改为yes

再添加一个参数

bind,值为 0.0.0.0

2 修改Redis-sentinel模板

添加一个参数

protected-mode 值 为no

# 添加主机

要求所有的主机节点,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

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

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

# 注册用户

用户密码就是用户名

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

# 新建redis应用(Redis-standalone)

test3登录cachecloud

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

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

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

点击 格式检查

最后点击部署

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

申请用户查看redis详情

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

带appKey的查询

新建Redis-sentinel类型应用

管理员通过审核

redis应用详情:

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

# 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安装部署的更多相关文章

  1. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  2. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  3. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考

    操作环境:Citrix虚拟化环境中申请一个Linux6.4主机(模板)目标:创建单机11g + ASM存储 数据库 1. 主机准备 2. 创建ORACLE 用户和组成员 3. 创建以下目录并赋予对应权 ...

  4. 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

    少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...

  5. C# winform安装部署(转载)

    c# winform 程序打包部署 核心总结: 1.建议在完成的要打包的项目外,另建解决方案建立安装部署项目(而不是在同一个解决方案内新建),在解决方案上右击-〉添加-〉现有项目-〉选择你要打包的项目 ...

  6. Ubuntu14.04 Django Mysql安装部署全过程

    Ubuntu14.04 Django Mysql安装部署全过程   一.简要步骤.(阿里云Ubuntu14.04) Python安装 Django Mysql的安装与配置 记录一下我的部署过程,也方便 ...

  7. 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0

    新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...

  8. 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布

    新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...

  9. SCCM 2012 R2安装部署过程和问题(三)

    上篇 SCCM 2012 R2安装部署过程和问题(二) 个人认为对于使用SCCM 2012的最重要的经验是耐心. SCCM采用分布式部署的架构,不同的站点角色可以部署在不同的服务器上,站点角色之间的通 ...

随机推荐

  1. AndroidSDK 自带定位工具 uiautomatorviewer

    前言:uiautomatorviewer是androidSDK自带的定位工具 1.打开目录D:\Android\androidSDK\tools\bin 2.点击启动uiautomator,页面显示如 ...

  2. array_multisort

    项目中用到这个函数了 ,起初对这个函数一直是懵逼状态,文档都看的朦朦胧胧的 网上无意间看到这篇文章 ,写的超级详细,收藏了 . 当然要先放原地址:https://www.cnblogs.com/WuN ...

  3. 对象存储到session中

    以前在使用java开发中,通常都是在session里面存放的对象.在使用php开发中,也打算在session中存入对象,确实能把对象放进去,也能把整个对象输出,但就是取不出对象里面的属性. 通过pri ...

  4. 指定某个div随着指定大div滚动,而不是随着整个窗口固定不动

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 微软Power BI 每月功能更新系列——7月Power BI 新功能学习

    Power BI Desktop 7月产品功能摘要 7月是Power BI Desktop团队的重要发布!但由于官方延迟更新,我们的讲述也就更晚了一点,也许大家觉得没有必要了,都8月了,谁还看7月的? ...

  6. python发送HTTP POST请求

    1. 127.0.0.1和0.0.0.0 127.0.0.1是一个回送地址,指本地机,一般用来本机测试使用,使用127.0.0.1启的服务只能在本地机器上访问,使用0.0.0.0启的服务可以在其他机器 ...

  7. phpstorm使用zen coding 快速编辑补全html/css代码

    百科定义: 使用仿CSS选择器的语法来快速开发HTML和CSS ——由Sergey Chikuyonok开发. Zen Coding由两个核心组件组成:一个缩写扩展器(缩写为像CSS一样的选择器)和上 ...

  8. WEBBASE篇: 第一篇, HTML知识1

    HTML知识1 1,web概述 WEB就是互联网上的一种应用程序 - 网页程序: 程序结构: (1)C / S: C:Client 客户端:S:Server 服务器: (2)B / S: B:Brow ...

  9. pytonn04day

    参考: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions 一列表 它是以[ ]括起来, 每个元素⽤用 ...

  10. ZOJ 1007:Numerical Summation of a Series(数学)

    Numerical Summation of a Series Time Limit: 10 Seconds      Memory Limit: 32768 KB      Special Judg ...