建议先部署bcs-cc,再部署该模块。
- 数据库:mysql 5.5
- 名字服务:Consul 1.0及以上
- Java版本:Oracle-JKD1.8.0_161
- Gradle版本:4.8.1
- OpenResty版本:1.11及以上
参考Conusl官网推荐的安装方法:Consul安装指南。下面以MacOS为例子进行说明。
- 下载最新Consul 1.5.1版本Consul 1.5.1版本。
- 解压consul_1.5.1_darwin_amd64.zip包,可以得到可运行的二进制文件consul。
- 修改consul二进制文件的权限,
chmod 766 consul
。 - 将consul文件复制到系统目录下即可完成安装,
cp ./consul /usr/local/bin/
。
consul进程启动分为2种方式:Client模式、Server模式。
本地开发启动服务器模式即可。
- consul server启动(IP:10.10.10.1)
sudo consul agent -server -data-dir=__CONSUL_DATA_DIR__ -ui -bootstrap -datacenter=__CONSUL_DATACENTER__ -domain=__CONSUL_DOMAIN__ -bootstrap -client=0.0.0.0 -bind=__LOCALHOST_IP__
# 例子:
sudo consul agent -server -data-dir=/data/consul -ui -bootstrap -datacenter=bkdevops -domain=bkdevops -bootstrap -client=0.0.0.0 -bind=10.10.10.1
- consul client启动(IP:10.10.10.2)
sudo consul agent -data-dir=__CONSUL_DATA_DIR__ -datacenter=__CONSUL_DATACENTER__ -domain=__CONSUL_DOMAIN__ -join=__CONSUL_SERVER_IP__ -bind=__LOCALHOST_IP__
# 例子:
sudo consul agent -data-dir=/data/consul -datacenter=enterprise -domain=bkdevops -join=10.10.10.1 -bind=10.10.10.2
变量名 | 说明 |
---|---|
CONSUL_DATA_DIR | consul运行数据的目录,默认值"/data/consul" |
CONSUL_DATACENTER | consul数据中心的名称,默认值"bkdevops" |
CONSUL_DOMAIN | consul域名的名称,默认值"bkdevops" |
LOCALHOST_IP | 本地IP地址 |
CONSUL_SERVER_IP | consul server的IP地址 |
consul启动成功后,可以通过页面来查看相关信息。Consul管理页面
参考Openresty官网推荐的安装方法:openresty安装指南 下面的部署会已MacOS为例子进行说明。
- 设置openresty工作目录为:
OPENRESTY_HOME=/usr/local/etc/openresty
cd $OPENRESTY_HOME/nginx/conf
// 进入到openresty默认配置目录下- 将bcs-projmgr/gateway目录下的内容复制到
$OPENRESTY_HOME/nginx/conf
目录下
- 修改
$OPENRESTY_HOME/nginx/conf/lua/init.lua.tpl
中变量的值,并替换$OPENRESTY_HOME/nginx/conf/lua/init.lua
文件,变量说明如下:
变量名 | 说明 |
---|---|
DEVOPS_STAITC_DIR | 前端静态文件的目录,默认值"$OPENRESTY_HOME/nginx/frontend" |
DEVOPS_LOGS_DIR | 访问access日志所在目录,默认值"$OPENRESTY_HOME/nginx/logs" |
BK_DOMAIN | 允许跨域的域名,默认值".bk.com" |
DEVOPS_CONSUL_DNS_PORT | consul的DNS端口,默认值"8600" |
DEVOPS_CONSUL_DOMAIN | consul的域名,默认值"bkdevops" |
- 修改
/usr/local/etc/openresty/nginx/conf/backend.conf.tpl
中变量的值,并替换/usr/local/etc/openresty/nginx/conf/backend.conf
文件,变量说明如下:
变量名 | 说明 |
---|---|
DEVOPS_HOST | 项目管理页面域名,默认值"dev.devops.bk.com" |
- 修改
/usr/local/etc/openresty/nginx/conf/frontend.conf.tpl
中变量的值,并替换/usr/local/etc/openresty/nginx/conf/frontend.conf
文件,变量说明如下:
变量名 | 说明 |
---|---|
DEVOPS_API_FQDN | 项目管理的后台接口域名,默认值"api.dev.devops.bk.com" |
- 修改
/usr/local/etc/openresty/nginx/conf/devops.ssl.tpl
中变量的值,并替换/usr/local/etc/openresty/nginx/conf/devops.ssl
文件,变量说明如下:
变量名 | 说明 |
---|---|
DEVOPS_CRT | SSL证书crt文件路径,默认值"conf/cert/bk_domain.crt" |
DEVOPS_KEY | SSL证书key文件路径,默认值"conf/cert/bk_domain.key" |
cd /usr/local/etc/openresty/nginx
// �进入到openresty默认配置目录下(注意:加载是相对路径,所以一定要进入到nginx的目录下)sudo sbin/nginx
// 启动nginxsudo sbin/nginx -t
// 验证配置sudo sbin/nginx -s reload
// 重新加载
打开 http://dev.devops.bk.com 即可进入项目管理页面。
进入 frontend,执行以下命令安装依赖包
npm install .
项目管理和BCS APP的打通是通过修改下面的__BCS_APP_FQDN__变量来实现,将__BCS_APP_FQDN__替换本地启动的bcs-app的域名即可。
- 修改
frontend/src/assets/static/env.js.tpl
中变量的值,并替换frontend/src/assets/static/env.js
文件,变量说明如下:
变量名 | 说明 |
---|---|
DEVOPS_API_FQDN | 项目管理的后台接口域名,默认值"api.dev.devops.bk.com" |
PAAS_FQDN | 蓝鲸PAAS的外部域名,默认值"paas.bk.com" |
BCS_APP_FQDN | BCS APP的本地访问域名,默认值"bcs.bk.com" |
在 frontend 目录下,继续执行以下命令打包前端静态资源,编译出来的文件会存放在frontend/dist
目录下
npm run public
- 运行如下命令,进行本地开发
# 第一次运行时执行
npm run dll
# 启动命令
npm run dev
在完成上一次的网关部署之后,将打包出来的内容frontend/dist
复制到网关指定的静态文件目录__DEVOPS_STAITC_DIR__/console
目录下。
在mysql数据库中执行support-files/devops_pm.sql的命令,创建devops_project
数据库。
参考安装Gradle官网安装方法:Gradle安装指南。
- 编译出包命令
编译出来的包存放在pm/release/service-project-1.0.0.jar
gradle clean -DmysqlURL=__MYSQL_IP__:__MYSQL_PORT__ -DmysqlUser=__MYSQL_USERNAME__ -DmysqlPasswd=__MYSQL_PASSWORD__ :service:service-project:copyToRelease --profile
# 例子
# 默认参数
gradle clean :service:service-project:copyToRelease --profile
# 指定参数
gradle clean -DmysqlURL=127.0.0.1:3306 -DmysqlUser=root -DmysqlPasswd=mysql :service:service-project:copyToRelease --profile
- 编译启动命令
gradle -DmysqlURL=__MYSQL_IP__:__MYSQL_PORT__ -DmysqlUser=__MYSQL_USERNAME__ -DmysqlPasswd=__MYSQL_PASSWORD__ :service:service-project:bootRun --profile
# 例子
# 默认参数
gradle :service:service-project:bootRun --profile
# 指定参数
gradle -DmysqlURL=127.0.0.1:3306 -DmysqlUser=root -DmysqlPasswd=mysql :service:service-project:bootRun --profile
- 数据库编译参数修改,修改
pm/model/build.gradle.tpl
中变量的值,并替换pm/model/build.gradle
文件
变量名 | 说明 |
---|---|
MYSQL_IP | mysql数据库IP地址,默认值"127.0.0.1" |
MYSQL_PORT | mysql数据库端口,默认值"3306" |
MYSQL_USER | mysql数据库账号,默认值"root" |
MYSQL_PASS | mysql数据库密码,默认值"mysql" |
- 运行日志参数修改,修改
pm/conf/log4j2.xml.tpl
中变量的值,并替换pm/conf/log4j2.xml
文件
变量名 | 说明 |
---|---|
LOGGER_PATH | pm运行的日志,默认值"./logs" |
- pm进程编译参数修改,修改
pm/service/service-project/src/main/resources/application.yml.tpl
中变量的值,并替换pm/service/service-project/src/main/resources/application.yml
文件
变量名 | 说明 |
---|---|
MYSQL_IP | mysql数据库IP地址,默认值"127.0.0.1" |
MYSQL_PORT | mysql数据库端口,默认值"3306" |
MYSQL_USER | mysql数据库账号,默认值"root" |
MYSQL_PASS | mysql数据库密码,默认值"mysql" |
CONSUL_AGENT_IP | mysql数据库密码,默认值"localhost" |
CONSUL_AGENT_PORT | mysql数据库密码,默认值"8500" |
DEVOPS_PM_PORT | pm进程启动端口,默认值"8065" |
PAAS_HOST | 蓝鲸PAAS的内部域名,默认值"paas.service.consul" |
PAAS_FQDN | 蓝鲸PAAS的外部域名,默认值"paas.bk.com" |
HTTP_SCHEMA | 蓝鲸企业版启动SCHEMA,默认值"https |
IAM_HOST | 权限中心的内部域名,默认值"iam.service.consul" |
APP_CODE | 项目管理的APP_CODE,默认值"bkdevops" |
APP_TOKEN | 项目管理的APP_TOKEN,默认值"bkdevops" |
java -Dlogger.config.file="./pm/conf/log4j2.xml" \
-Dspring.datasource.url="jdbc:mysql://__MYSQL_IP__:__MYSQL_PORT__/devops_project?useSSL=false&autoReconnect=true&timezone=+800&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true" \
-Dspring.datasource.username="__MYSQL_USER__" \
-Dspring.datasource.password="__MYSQL_PASS__" \
-Dspring.cloud.consul.host="__CONSUL_AGENT_IP__" \
-Dspring.cloud.consul.port="__CONSUL_AGENT_PORT__" \
-Dserver.port="__DEVOPS_PM_PORT__" \
-Dbk_login.path="http://__PAAS_HOST__/api/c/compapi/v2/bk_login/" \
-Dbk_login.url="http://__PAAS_HOST__" \
-Dbk_login.outurl="__HTTP_SCHEMA__://__PAAS_FQDN__" \
-Dbk_login.bk_app_code="__APP_CODE__" \
-Dbk_login.bk_app_secret="__APP_TOKEN__" \
-Dauth.xBkAppCode="__APP_CODE__" \
-Dauth.xBkAppSecret="__APP_TOKEN__"\
-Dauth.url="http://__IAM_HOST__" \
-Dbcs_cc.externalUrl="http://__PAAS_HOST__/api/apigw/bcs_cc/prod/project" \
-jar "./pm/release/service-project-1.0.0.jar"
# 例子
# 默认参数
java -jar "./pm/release/service-project-1.0.0.jar"
# 指定参数
java -Dlogger.config.file="./pm/conf/log4j2.xml" \
-Dspring.datasource.url="jdbc:mysql://127.0.0.1:3306/devops_project?useSSL=false&autoReconnect=true&timezone=+800&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true" \
-Dspring.datasource.username="root" \
-Dspring.datasource.password="mysql" \
-Dspring.cloud.consul.host="localhost" \
-Dspring.cloud.consul.port="8500" \
-Dserver.port="8065" \
-Dbk_login.path="http://paas.service.consul/api/c/compapi/v2/bk_login/" \
-Dbk_login.url="http://paas.service.consul" \
-Dbk_login.outurl="https://paas.bk.com" \
-Dbk_login.bk_app_code="bkdevops" \
-Dbk_login.bk_app_secret="bkdevops" \
-Dauth.xBkAppCode="bkdevops" \
-Dauth.xBkAppSecret="bkdevops"\
-Dauth.url="http://iam.service.consul" \
-Dbcs_cc.externalUrl="http://paas.service.consul/api/apigw/bcs_cc/prod/project" \
-jar "./pm/release/service-project-1.0.0.jar"