项目地址: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. 八、启动linux内核并修改开机logo

    1. 编译并烧写linux内核 1)先准备好内核源码包urbetter-linux2.6.28-v1.0.tgz,输入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tg ...

  2. mysql的sql语句的性能诊断分析

    1> explain SQL,类似于Oracle中explain语句 例如:explain select * from nad_aditem; 2> select benchmark(co ...

  3. IOS内置safari浏览器日期字符串转Date对象失败

    代码示例: <html> <head> <title>Date字符串转化示例</title> </head> <body> &l ...

  4. Day3作业及默写

    1.有变量量name = "aleX leNb" 完成如下操作: 移除 name 变量对应的值两边的空格,并输出处理结果 print(name.strip()) 移除 name 变 ...

  5. python day09--定义函数

    一.函数的定义 def  函数名(参数): 函数体 来我们来定义⼀一个约x功能: def yue(): print("拿出⼿手机") print("打开陌陌") ...

  6. Python 通过队列实现一个生产者消费者模型

    import time from multiprocessing import Process,Queue #生产者 def producer(q): for i in range(10): time ...

  7. 关于DDOS的主动与智能防御

    -   善守者藏于九地之下    - -  狡兔九窟 - 一.分配足够多的网关服务器 让用户总一个终点,可以进入游戏.多分配,动态分配,定期更新 二.用户分组分级 分组可以根据用户的生成时间, 在线时 ...

  8. lua 取table长度

    http://blog.csdn.net/wangmanjie/article/details/52793902 static int unbound_search (Table *t, unsign ...

  9. Django组件之分页器

    分页器 简单的分页器实现 views.py from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger from ap ...

  10. Linux大文件分割splite

    /********************************************************************** * Linux大文件分割splite * 说明: * 编 ...