cachecloud 安装部署
本次操作使用root账号
操作系统版本:centos7.x 三台
安装依赖版本:
mysql 5.7
java 1.8
maven 3.6
cachecloud 2.0
一、cachecloud
1、下载cachecloud软件包
git clone https://github.com/sohutv/cachecloud
cd cachecloud
mvn clean package // 这里需要提前配置号maven和jdk
下图是maven编译成功的截图
或者直接下载web jar包
wget http://47.97.112.178/redis-ecs/cachecloud-web.war
对于该平台来说,主要就是这个war包,所以可以不用自己手动编译。
2、创建数据库
create database cachecloud_open;
3、导入建表语句
use cachecloud_open;
source /data1/cachecloud/cachecloud-web/sql/2.0.sql;
source /data1/cachecloud/cachecloud-web/sql/update2.0-2.1.sql;
记得把update2.0-2.1.sql里面的create or replace table app_import改成create table app_import,否则报错
4、拷贝配置文件到web war包目录
我这里是源码编译安装的,所以war包目录是在如下目录:
cachecloud-web/target/cachecloud-web.war
copy 包
cp cachecloud-web/src/main/resources/application-open.yml cachecloud-web/target/
修改配置
cd cachecloud-web/target/
修改application-open.yml,主要修改红框部分
5、启动测试
java -jar -Dspring.profiles.active=open cachecloud-web.war
上面这个在测试的时候可以看到一些详细信息,如果是已经确定没用任何问题,生成环境可以使用下面这样
nohup java -jar -Dspring.profiles.active=open cachecloud-web.war &
6、登录
用户名/密码:admin/admin
二、添加机器
1、官网下载redis
wget https://download.redis.io/releases/redis-6.2.3.tar.gz
这里下载最新版的6.2.3
把该软件包上传到服务器的/tmp目录下
2、使用自带的脚本进行初始化
脚本路径:/data1/cachecloud/redis-ecs/script/cachecloud-init.sh
修改脚本:
主要修改如下:
1、修改版本
把该数组的值直接改成你需要使用到的版本。
2、注释auth_key
下面两行注释掉,否则执行脚本的时候,由于这里不存在文件,会导致报错,,退出
3、替换安装包
其中使用#注释的这一行是原本存在的,现在使用#注释,同时添加#注释下面的这一行。
4、执行脚本
bash cachecloud-init.sh cachecloud-open
出现上述的提示说明安装成功。
注:
在脚本里面明确注释了# Redis6.0及以上版本需要依赖操作系统gcc 4.9.0以上版本编译,所以在生产环境,需要注意编译器版本,或者降低redis版本
3、这里说明一下,另外三个脚本
redis-install.sh redisShake-install.sh ssh-keygen.sh
redis-install.sh: 用于安装单个redis,就是把cachecloud-init.sh脚本里面的installRedis这块函数拿出来,同时版本指定为5.0.9了。其他的像系统设置没有做;
redisShake-install.sh: 主要是做数据迁移的
ssh-keygen.sh:这个就是为用户cachecloud-open生产密钥了。
上面生产这个密钥的脚本,主要是用于系统配置这块,如果选择public key,那么就需要用到该脚本,或者自己手动生成密钥也行,默认是使用passwd的方式,当然,在添加机器的时候,要注意所有的机器用户cachecloud-open密码是一致的:
4、添加机器
这里只是安装了类似监控的界面,但是具体监控的(像服务啊,主机啊什么的)并没用添加到监控列表。所以这里需要添加主机:
4.1 点击admin--> 管理后台
4.2 添加机器
选择机器管理--> 添加机器
注:这里需要说明的是要添加的机器上面需要使用上述的cachecloud-init.sh脚本进行初始化,也就是配置系统参数,创建用户以及安装redis,服务启动不启动倒是无所谓。
配置详细的信息:
等待一分钟左右,可以看到已经成功添加:
但是查看日志,却发现如下异常:
这个是mysql的一个安全检查,关闭它:ONLY_FULL_GROUP_BY
两种方式:
1:
SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
2:
在my.cnf的mysqld里面添加
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
这个需要重启mysql
异常2:
提示没用nmon
这个的话网上下载一个安装上就行了
5、创建应用
5.1 点击admin --> 我的申请
5.2 点击申请应用
这里我从新安装了5.0.9版本的redis节点,所以使用这个版本测试,对于redis最新版本,由于cachecloud没有集成,后期在创建应用的时候报错,个人怀疑是没有配置模板配置项。有时间测试一下
5.3 审批
点击审批处理
生成部署预览
开始部署
如果成功,那么回到工单审批那里。点击通过即可
到前台查看创建的应用
x、错误记录
错误1:
Table 'cachecloud_open.QRTZ_LOCKS' doesn't exist
这个错误是因为创建的表名是小写,但是在spring里面使用的时候是大写的表名,感觉这是他们的一个bug。解决办法是修改mysql对表名不区分大小写
1、查看mysql对表名是否区分大小写
mysql> show variables like "%case%";
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
| validate_password_mixed_case_count | 1 |
+------------------------------------+-------+
其中 lower_case_table_names这个变量的是影响表名是否大小写的。
如果是0,则表示区分大小写,如果是1表示不区分。
这是一个readonly 变量,所以在使用set global方式修改的时候,会报一个如下的异常:
mysql> set global lower_case_table_names=1;
ERROR 1238 (HY000): Variable 'lower_case_table_names' is a read only variable
处理办法是:
先关闭mysql服务:mysqladmin -uroot -p shutdown 或者 systemctl stop mysqld
修改mysql配置文件,在mysqld下面添加一行lower_case_table_names=1
异常2
文件数不够
echo 'cachecloud-open soft nofile 65535' >> /etc/security/limits.conf
echo 'cachecloud-open hard nofile 65535' >> /etc/security/limits.conf
就这样吧,写的有点乱,有时间整理一下。
借鉴:
官网:
http://122.9.1.235:8080/wiki/quickstart/index
https://blog.csdn.net/qq_37960324/article/details/104646716