项目地址: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. shell开源跳板机sshstack

    笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 源码地址: https://github.com/sshstack/sshstack 为什么要写shell跳板机? ...

  2. python中字符串的操作方法

    python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细 ...

  3. 2019-03-14-day010-函数进阶

    昨日回顾 1.函数: 函数的定义 函数的参数 位置参数 关键字参数 混合参数 形参的位置上(默认参数) 实参的位置上(关键字参数) 位置参数 > 默认参数 三元运算符: c = a if a&g ...

  4. SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)

    1.pom.xml增加依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...

  5. Python 封装

    # 封装: # 1. 对属性的封装 # 2. 对功能的封装 # 3. 模块 # 4. 包 class Student: def __init__(self, num, name, clazz): se ...

  6. Python Algorithms – chapter2 基础知识

    一.渐进记法 三个重要的记号 Ο.Ω.Θ,Ο记法表示渐进上界,Ω记法表示渐进下界,Θ记法同时提供了函数的上下界 几种常见的渐进运行时间实例 三种重要情况 最好的情况,最坏的情况,平均情况 最坏的情况通 ...

  7. 记第二届CCPC全国女生赛参赛体验

    离比赛时间已经有点久了,今天整理博客看到“”参赛体会“”这一分类,觉得记录一下也好 流水账记一下感受 因为题目我已经忘记了.. 第一次..那么久..大概有三个多小时在金牌区吧.. 然后就是一无所出了. ...

  8. SQL注入之Sqli-labs系列第八篇(基于布尔盲注的注入)

    开始挑战第八关(Blind- Boolian- Single Quotes- String) 这关首先需要用到以下函数: 开始测试,使用测试语句,利用单引号进行闭合 猜解字段 union select ...

  9. numpy中的复合数组

    1.复合数组的创建 # 复合数组,最重要的是定义dtype a = np.array([('ABC', [1, 2, 3])], dtype="U3, 3i4") print(a) ...

  10. 获取div,表单中的内容

    获得内容 - text().html() 以及 val() 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元 ...