项目主页: https://gitee.com/MiOpenSource/shepher.git
Shepher 是一款 ZooKeeper 的管理工具。在小米公司,我们用它作为配置管理中心。Readme in English
特性
- ZooKeeper 节点的可视化操作
- ZooKeeper 节点的快照管理
- ZooKeeper 节点修改的 Diff 和 Review 功能
- ZooKeeper 节点操作邮件通知
- 集成 CAS 和 LDAP 登录
- 权限管理,参照 权限管理说明
安装
环境要求
- JDK 1.8
- Maven 3.2 +
- MySQL 5.6
基本配置
- 修改
db/init.sql
中的INSERT INTO user VALUES (1,'youradmin',now());
,将youradmin
改为你的管理员用户名
开发环境部署
编译
- 参照 参数说明 修改
conf/application-default.properties
的参数配置 本地编译
$ mvn clean package $ cd shepher-packaging/target/shepher-packaging-{version}-bin $ ls bin/(all the shell scripts) conf/(configuration files) db/init.sql lib(required jar files) Dockerfile docker-compose.yml CHANGES.txt NOTICE.txt README.md README-zh.md VERSION
这里, {version} 是指当前 Shepher 的版本。
本地部署
- 将
db/init.sql
导入到 MySQL 进入到安装目录
$ cd shepher-packaging/target/shepher-packaging-{version}-bin
运行脚本,启动服务 Shepher
$ sh bin/run.sh start
- 在浏览器中访问
http://localhost:8089
或自定义的server.url
(参照 参数说明)
Docker 部署
使用 Docker 部署则自动集成 MySQL 和 ZooKeeper,并且自动将 db/init.sql
导入MySQL中,不需要自行安装。
- 安装 Docker,以 Ubuntu 系统为例,安装 docker engine 和 docker-compose
进入到安装目录
$ cd shepher-packaging/target/shepher-packaging-{version}-bin
运行脚本,启动服务 Shepher, 等待 Docker 中的各个容器启动完成
$ sh bin/docker-run.sh start
- 在浏览器中访问
http://localhost:8089
或自定义的server.url
(参照 参数说明)
生产环境部署
生产环境部署的步骤跟本地编译部署类似,主要注意对数据源、CAS/LDAP 以及域名的设置。另外,由于各个公司内部的邮件服务较为封闭,在线上使用中需要自己实现 CustomMailSender
类,并在 shepher-web/src/main/resources/application.properties
中设置 mail.sender=customMailSender
>,以便 Shepher 服务可以正常使用邮件服务。
- 将
db/init.sql
导入到 MySQL - 创建
conf/application-online.properties
文件,参照 参数说明 添加和修改配置 在 Shepher 根目录下运行命令
$ mvn clean package
将安装目录 shepher-packaging/target/shepher-packaging-{version}-bin 拷贝到线上,然后进入到该目录
$ cd shepher-packaging/target/shepher-packaging-{version}-bin
执行下面命令启动 Shepher
$ sh bin/run.sh -c conf/application.properties,conf/application-online.properties start
在浏览器中访问
http://localhost:8089
或自定义的server.url
效果图如下:
配置cas登陆
修改配置文件conf/application-default.properties
,对应修改以下配置项# CAS cas.server.url.prefix=http://cas.example.com/cas cas.login.url=${cas.server.url.prefix}/login cas.logout.url=${cas.server.url.prefix}/logout ... # SERVER server.url=http://zk.example.com server.port=8089 # LOGIN TYPE (CAS or LDAP) server.login.type=CAS
注:http://zk.example.com 为shepher的访问地址,若写的是服务器ip地址 类似http://192.168.0.2,则使用cas登陆时会造成跳转错误。http://cas.example.com/cas 为cas-server地址,cas-server安装配置请参考:cas-server安装配置