From 7bb8b86b44f1c4e420bcc2ad6935d455be53cc47 Mon Sep 17 00:00:00 2001 From: bd-xiaowang Date: Fri, 1 Nov 2024 14:22:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96helm=E9=83=A8=E7=BD=B2cmdb?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/overview/source_compile.md | 14 +- docs/support-file/dockerfile/README.md | 22 +- docs/support-file/helm/backend/README.md | 82 ++-- docs/support-file/helm/web/README.md | 439 ++++++++++++++++++ .../templates/webserver/webserver-dpl.yaml | 1 + docs/support-file/helm/web/values.yaml | 4 +- scripts/image.sh | 69 ++- 7 files changed, 514 insertions(+), 117 deletions(-) create mode 100644 docs/support-file/helm/web/README.md diff --git a/docs/overview/source_compile.md b/docs/overview/source_compile.md index 201d7e4c94..387b4ebcb5 100644 --- a/docs/overview/source_compile.md +++ b/docs/overview/source_compile.md @@ -4,7 +4,7 @@ ## 编译环境 -- golang >= 1.17 +- golang >= 1.20 - python >= 2.7.5 @@ -129,20 +129,12 @@ make package ### Docker 镜像制作 -解压cmdb.tar.gz,进入cmdb目录执行以下命令: +执行打包后进入归档包存放位置,解压cmdb.tar.gz,进入cmdb目录执行以下命令: ``` shell -./image.sh -i +./image.sh ``` -**示例:** - -```shell -./image.sh -i linux:latest -``` - -**注:-i 参数后面配置的参数是基础镜像,基础镜像可以自己制作,也可以使用公共镜像。** - ## 编译问题及解决 ### 源码下载问题 diff --git a/docs/support-file/dockerfile/README.md b/docs/support-file/dockerfile/README.md index 6003db074a..46db5cf5d1 100644 --- a/docs/support-file/dockerfile/README.md +++ b/docs/support-file/dockerfile/README.md @@ -1,24 +1,4 @@ # BK-CMDB -蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。 - -本文档内容为如何根据提供的dockerfile制作cmdb镜像。 - -### 操作步骤 -#### 对于cmdb各个服务。这里以adminserver为例: -(1)在adminserver目录里创建cmdb_adminserver目录 -``` -mkdir dockerfile/adminserver/cmdb_adminserver -``` -(2)将adminserver的二进制拷贝到上述的cmdb_adminserver目录中 - -(3)在上述cmdb_adminserver目录创建conf目录,将errors,language -``` -mkdir dockerfile/adminserver/cmdb_adminserver/conf -cp -r cmdb/{errors,language} dockerfile/adminserver/cmdb_adminserver/conf -``` - -(4)执行docker build构建镜像 - -注:其中webserver比较特殊,还需要将web目录以及docs/support-file/changelog_user目录拷贝到cmdb_webserver下,即与conf和二进制同级的目录下 +蓝鲸配置平台(蓝鲸CMDB)镜像构建方式请参考[CMDB 编译指南](../../overview/source_compile.md) diff --git a/docs/support-file/helm/backend/README.md b/docs/support-file/helm/backend/README.md index 3dba2b2a1c..bc842c7d31 100644 --- a/docs/support-file/helm/backend/README.md +++ b/docs/support-file/helm/backend/README.md @@ -1,10 +1,8 @@ - - # BK-CMDB 蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。 -本文档内容为如何在 Kubernetes 集群上部署 BK-CMDB 服务。 +本文档内容为如何在 Kubernetes 集群上部署 BK-CMDB 后台服务。 说明:内置的mongodb、redis、zookeeper、elasticsearch等组件仅用于测试环境,正式环境部署必须配置为外部组件。 @@ -21,32 +19,37 @@ - Kubernetes 1.12+ - Helm 3+ +快速部署k8s集群可参考:[蓝鲸官方白皮书](https://bk.tencent.com/docs/markdown/ZH/DeploymentGuides/7.1/get-k8s-create-bcssh.md) + +### 镜像制作 +制作cmdb镜像请参考:[CMDB 编译指南](../../../overview/source_compile.md) ### 安装Chart 使用以下命令安装名称为`bkcmdb`的release, 其中``代表helm仓库地址, password为自己设置的任意密码: ```shell +# 添加helm仓库 +$ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm repo add bkee -$ helm install bkcmdb bkee/bkcmdb --set mongodb.auth.password=${password} --set redis.auth.password=${password} +# 更新并拉取依赖 +$ helm dependency update +# 执行部署 +$ helm install cmdb-backend bkee/cmdb-backend --set mongodb.auth.password=${password} --set redis.auth.password=${password} ``` -上述命令将使用默认配置在Kubernetes集群中部署bkcmdb, 并输出访问指引。 - - - +上述命令将使用默认配置在Kubernetes集群中部署BK-CMDB 后台服务 +注:执行部署前请检查values.yaml镜像配置中的镜像地址 ### 卸载Chart -使用以下命令卸载`bkcmdb`: +使用以下命令卸载`cmdb-backend`: ```shell -$ helm uninstall bkcmdb +$ helm uninstall cmdb-backend ``` -上述命令将移除所有和bkrepo相关的Kubernetes组件。 - - +上述命令将移除所有和cmdb-backend相关的Kubernetes组件。 ## Chart依赖 @@ -63,29 +66,35 @@ $ helm uninstall bkcmdb | 参数 | 描述 | 默认值 | | :-------------: | :----------: | :----------: | -| image.registry | 镜像源域名 | mirrors.tencent.com | +| image.registry | 镜像源域名 | hub.bktencent.com | | image.pullPolicy | 镜像拉取策略 | IfNotPresent | ### 启动时初始化配置说明 启动时会执行job,分别对cmdb依赖的mongodb数据库进行初始化操作,以及往GSE注册dataid -| 参数 | 描述 | 默认值 | -| :----------------------: | :---------------------------: | :----: | -| migrate.enabled | 是否在执行helm时启动该job | true | -| migrate.image.repository | 初始化job所需要的镜像仓库地址 | migrate | -| migrate.image.tag | 初始化job所需要的镜像版本 | {TAG_NAME} | -| migrateDataId | 是否在启动时往GSE注册dataid | false | +| 参数 | 描述 | 默认值 | +|:------------------------:|:----------------------:|:----------:| +| migrate.enabled | 是否在执行helm时启动该job | true | +| migrate.image.repository | 初始化job所需要的镜像仓库地址 | migrate | +| migrate.image.tag | 初始化job所需要的镜像版本 | {TAG_NAME} | +| migrate.migrateDataId | 是否在启动时往GSE注册dataid | false | +| migrate.migrateOldDataId | 是否在启动时往GSE注册旧版本dataid | false | +| migrate.dataid.migrateWay | 通过何种方式调用gse接口注册dataid,可选值esb和apigw | esb | ### 蓝鲸产品URL配置 -| 参数 | 描述 | 默认值 | -| :------: | :------: | :---------------------: | -| bkPaasUrl | paas地址 | http://paas.example.com | -| bkIamApiUrl | bkiam后端地址 | http://bkiam-web | -| bkComponentApiUrl | 蓝鲸ESB地址 | http://bkapi.paas.example.com | -| bkLoginApiUrl | 蓝鲸登录地址 | http://bk-login-web | -| bkNodemanUrl | 节点管理地址 | http://apps.paas.example.com/bk--nodeman | +| 参数 | 描述 | 默认值 | +| :------: |:-----------:|:----------------------------------------:| +| bkPaasUrl | paas地址 | http://paas.example.com | +| bkIamApiUrl | bkiam后端地址 | http://bkiam-web | +| bkComponentApiUrl | 蓝鲸ESB地址 | http://bkapi.paas.example.com | +| bkLoginApiUrl | 蓝鲸登录地址 | http://bk-login-web | +| bkNodemanUrl | 节点管理地址 | http://apps.paas.example.com/bk--nodeman | +| bkApigatewayName | 蓝鲸网关cmdb组件名 | bk-cmdb | +| bkGseApiGatewayUrl | 蓝鲸 GSE API Gateway url | http://bkapi.example.com | +| bkNoticeApiGatewayUrl | 蓝鲸 Notice API Gateway url | http://bkapi.example.com | +| bkCmdbApiGatewayUrl | CMDB API Gateway url | http://bkapi.example.com | ### adminserver服务配置说明 @@ -289,25 +298,6 @@ $ helm uninstall bkcmdb | synchronizeserver.command.logToStdErr | 是否把日志输出到stderr | false | | synchronizeserver.workDir | 工作目录 | /data/cmdb/cmdb_synchronizeserver | -### webserver服务配置说明 - -| 参数 | 描述 | 默认值 | -| :----------------------------------: | :-----------------------------: | :------------------------------: | -| webserver.enabled | 是否在执行helm时启动 | true | -| webserver.image.repository | 服务镜像名 | cmdb_webserver | -| webserver.image.tag | 服务镜像版本 | {TAG_NAME} | -| webserver.replicas | pod副本数量 | 1 | -| webserver.port | 服务端口 | 80 | -| webserver.ingress.enabled | 开启ingress访问 | true | -| webserver.ingress.hosts | ingress代理访问的域名 |cmdb.example.com| -| webserver.service.type | 服务类型 | ClusterIP | -| webserver.service.targetPort | 代理的目标端口 | 80 | -| webserver.service.nodePort | 访问端口 | | -| webserver.command.logDir | 日志存放路径 | /data/cmdb/cmdb_webserver/logs | -| webserver.command.logLevel | 日志等级 | 3 | -| webserver.command.logToStdErr | 是否把日志输出到stderr | false | -| webserver.workDir | 工作目录 | /data/cmdb/cmdb_webserver | - ### 服务开启鉴权开关 | 参数 | 描述 | 默认值 | diff --git a/docs/support-file/helm/web/README.md b/docs/support-file/helm/web/README.md new file mode 100644 index 0000000000..78dd56ee5b --- /dev/null +++ b/docs/support-file/helm/web/README.md @@ -0,0 +1,439 @@ +# BK-CMDB + +蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。 + +本文档内容为如何在 Kubernetes 集群上部署 BK-CMDB web服务。 + +说明:内置的mongodb、redis等组件仅用于测试环境,正式环境部署必须配置为外部组件。 + +## BK-CMDB 部署项目 + +### 架构设计 + +* [点击这里](https://github.com/TencentBlueKing/bk-cmdb/blob/master/docs/overview/architecture.md) + +## 部署 + +### 环境要求 + +- Kubernetes 1.12+ +- Helm 3+ + +快速部署k8s集群可参考:[蓝鲸官方白皮书](https://bk.tencent.com/docs/markdown/ZH/DeploymentGuides/7.1/get-k8s-create-bcssh.md) + +### 镜像制作 + +制作cmdb镜像请参考:[CMDB 编译指南](../../../overview/source_compile.md) + +### 安装Chart + +使用以下命令安装名称为`bkcmdb`的release, 其中``代表helm仓库地址, password为自己设置的任意密码: + +```shell +# 添加helm仓库 +$ helm repo add bitnami https://charts.bitnami.com/bitnami +$ helm repo add bkee +# 更新并拉取依赖 +$ helm dependency update +# 执行部署 +$ helm install cmdb-web bkee/cmdb-web --set mongodb.auth.password=${password} --set redis.auth.password=${password} +``` + +上述命令将使用默认配置在Kubernetes集群中部署BK-CMDB web服务, 并输出访问指引。 +注:执行部署前请检查values.yaml镜像配置中的镜像地址 + +### 卸载Chart + +使用以下命令卸载`cmdb-web`: + +```shell +$ helm uninstall cmdb-web +``` + +上述命令将移除所有和cmdb-web相关的Kubernetes组件。 + +## Chart依赖 + +- [bitnami/mongodb](https://github.com/bitnami/charts/tree/master/bitnami/mongodb) +- [bitnami/redis](https://github.com/bitnami/charts/tree/master/bitnami/redis) +- [bitnami/zookeeper](https://github.com/bitnami/charts/tree/master/bitnami/zookeeper) +- [bitnami/elasticsearch](https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch) + +## 配置说明 + +各项配置集中在仓库的一个values.yaml文件之中 + +### 镜像配置 + +| 参数 | 描述 | 默认值 | +| :-------------: | :----------: | :----------: | +| image.registry | 镜像源域名 | mirrors.tencent.com | +| image.pullPolicy | 镜像拉取策略 | IfNotPresent | + +### 蓝鲸产品URL配置 + +| 参数 | 描述 | 默认值 | +| :------: | :------: | :---------------------: | +| bkPaasUrl | paas地址 | http://paas.example.com | +| bkIamApiUrl | bkiam后端地址 | http://bkiam-web | +| bkComponentApiUrl | 蓝鲸ESB地址 | http://bkapi.paas.example.com | +| bkLoginApiUrl | 蓝鲸登录地址 | http://bk-login-web | +| bkNodemanUrl | 节点管理地址 | http://apps.paas.example.com/bk--nodeman | + +### webserver服务配置说明 + +| 参数 | 描述 | 默认值 | +|:-----------------------------:| :-----------------------------: | :------------------------------: | +| webserver.enabled | 是否在执行helm时启动 | true | +| webserver.image.repository | 服务镜像名 | cmdb_webserver | +| webserver.image.tag | 服务镜像版本 | {TAG_NAME} | +| webserver.replicas | pod副本数量 | 1 | +| webserver.port | 服务端口 | 80 | +| webserver.ingress.enabled | 开启ingress访问 | true | +| webserver.ingress.hosts | ingress代理访问的域名 |cmdb.example.com| +| webserver.service.type | 服务类型 | ClusterIP | +| webserver.service.targetPort | 代理的目标端口 | 80 | +| webserver.service.nodePort | 访问端口 | | +| webserver.command.logDir | 日志存放路径 | /data/cmdb/cmdb_webserver/logs | +| webserver.command.logLevel | 日志等级 | 3 | +| webserver.command.logToStdErr | 是否把日志输出到stderr | false | +| webserver.workDir | 工作目录 | /data/cmdb/cmdb_webserver | + +### mongodb配置 +| 参数 | 描述 | 默认值 | +| :----------------------------------: | :-----------------------------: | :------------------------------: | +| mongodb.enabled | 是否部署mognodb,如果需要使用外部数据库,设置为`false`并配置`mongodb.externalMongodb`和`mongodb.watch`下关于外部mongodb的配置 | true | + +`mongodb.externalMongodb` 和 `mongodb.watch` 开头的配置,可根据原`mongodb.yaml`中的配置进行修改 + +### redis配置 +| 参数 | 描述 | 默认值 | +| :----------------------------------: | :-----------------------------: | :------------------------------: | +| redis.enabled | 是否部署redis,如果需要使用外部数据库,设置为`false`并配置`redis.redis`、`redis.snapshotRedis`、`redis.discoverRedis`、`redis.netCollectRedis`下关于外部redis的配置 | true | + +`redis.redis`、`redis.snapshotRedis`、`redis.discoverRedis`、`redis.netCollectRedis` 开头的配置,可根据原`redis.yaml`中的配置进行修改 + +### zookeeper配置 +| 参数 | 描述 | 默认值 | +| :----------------------------------: | :-----------------------------: | :------------------------------: | +| zookeeper.enabled | 是否部署zookeeper作为配置发现中心、服务发现中心,如果需要使用外部zookeeper组件,设置为`false`并配置`configAndServiceCenter.addr` | true | + +### 配置发现中心、服务发现中心配置 + +| 参数 | 描述 | 默认值 | +| :-------------------------: | :----------------------------------------------------------: | :----: | +| configAndServiceCenter.addr | 外部配置发现中心、服务发现中心地址,当zookeeper.enabled配置为`false`时,使用此参数连接外部组件 | | + +### elasticsearch配置 + +| 参数 | 描述 | 默认值 | +|:-----------------------------------:| :----------------------------------------------------------: | :----: | +| web.es.fullTextSearch | 开启全文索引开关,可选值为`on` 和 `off`, 默认关闭 | off | + +### monstache配置 +monstache是一个用于将mongodb的数据同步到es去创建索引的一个组件 + +| 参数 | 描述 | 默认值 | +| :-------------------------: | :----------------------------------------------------------: | :----: | +| monstache.enabled | 是否启动内部部署的monstache,如果需要使用外部monstache组件,设置为`false` | false | +| monstache.image.repository | 服务镜像名 | cmdb_monstache | +| monstache.image.tag | 服务镜像版本 | {TAG_NAME} | +| monstache.replicas | pod副本数量 | 1 | +| monstache.port | 服务端口 | 80 | +| monstache.workDir | 工作路径 | /data/cmdb/monstache | +| monstache.configDir | 需要的配置文件路径 | /data/cmdb/monstache/etc | +| monstache.directReadDynamicIncludeRegex | monstache配置内容 |内容过长请查看原value.yaml文件| +| monstache.mapperPluginPath | monstache配置内容 |/data/cmdb/monstache/monstache-plugin.so| +| monstache.elasticsearchShardNum | monstache配置内容 | 1 | +| monstache.elasticsearchReplicaNum | monstache配置内容 | 1 | + +### bkLogConfig配置 +- bkLogConfig配置用于配置接入蓝鲸日志平台功能 + +| 参数 | 描述 | 默认值 | +| :-------------------------: | :----------------------------------------------------------: | :----: | +| bkLogConfig.file.enabled | 是否采集容器内落地文件日志 | false | +| bkLogConfig.file.dataId | 采集容器内落地文件日志的dataid,dataid在日志平台上申请分配 | 1 | +| bkLogConfig.std.enabled | 是否采集容器标准输出日志 | false | +| bkLogConfig.std.dataId | 采集容器标准输出日志的dataid,dataid在日志平台上申请分配 | 1 | + +### serviceMonitor配置 +- serviceMonitor配置用于配置服务监控功能 + +| 参数 | 描述 | 默认值 | +| :-------------------------: | :----------------------------------------------------------: | :----: | +| serviceMonitor.enabled | 是否开启服务监控,采集cmdb业务指标数据 | false | +| serviceMonitor.interval | cmdb业务指标数据采集间隔时间 | 15s | + +## 配置案例 + +### 1. 使用外接mongodb +```yaml +mongodb: + enabled: false + ... + # external mongo configuration + externalMongodb: + enabled: xxx + usr: xxx + pwd: xxx + database: xxx + host: 127.0.0.1:27017 + maxOpenConns: xxx + maxIdleConns: xxx + mechanism: xxx + rsName: xxx + socketTimeoutSeconds: xxx + watch: + usr: xxx + pwd: xxx + database: xxx + host: 127.0.0.1:27017 + maxOpenConns: xxx + maxIdleConns: xxx + mechanism: xxx + rsName: xxx + socketTimeoutSeconds: xxx +``` + +### 2. 使用外接redis + +```yaml +redis: + enabled: false + ... + # external redis configuration + redis: + host: 127.0.0.1:6379 + pwd: xxx + database: xxx + maxOpenConns: xxx + maxIdleConns: xxx + sentinelPwd: xxx + masterName: xxx + + snapshotRedis: + host: 127.0.0.1:6379 + pwd: xxx + database: xxx + maxOpenConns: xxx + maxIdleConns: xxx + sentinelPwd: xxx + masterName: xxx + + discoverRedis: + host: 127.0.0.1:6379 + pwd: xxx + database: xxx + maxOpenConns: xxx + maxIdleConns: xxx + sentinelPwd: xxx + masterName: xxx + + netCollectRedis: + host: 127.0.0.1:6379 + pwd: xxx + database: xxx + maxOpenConns: xxx + maxIdleConns: xxx + sentinelPwd: xxx + masterName: xxx +``` + +### 3. 使用外接zookeeper作为配置发现中心和服务发现中心 + +```yaml +zookeeper: + enabled: false +configAndServiceCenter: + addr: 127.0.0.1:2181 + +``` + +### 4. 使用elasticsearch相关操作 + +- 如果在cmdb中使用es,首先需要开始es的开关 + +```yaml +web: + es: + fullTextSearch: "on" +``` + +- 在cmdb中使用elasticsearch需要依赖两个组件,一个是elasticsearch本身,一个monstache(用于将mongodb数据同步到elasticsearch) + + (1)使用内置组件 + + ​ helm chart中有内置的elasticsearch和monstache,可通过下面操作打开: + + ```yaml + elasticsearch: + enabled: true + + ·· + + monstache: + enabled: true + ``` + + ​ 将elasticsearch和monstache的enabled变为true即可 + + + + (2)使用外接组件 + + 这里仅需配置连接外置的elasticsearch,这时外置的monstach已经与cmdb没有配置上的联系 + + ```yaml + common: + es: + url: xxx + usr: xxx + pwd: xxx + ``` + + 配置上外部es的url,账户密码的信息即可 + +- 当然也可以使用内置的monstache,连接外部的elasticsearch + + ```yaml + monstache: + enabled: true + + ··· + + common: + es: + url: xxx + usr: xxx + pwd: xxx + ``` + + 将monstache.enabled变为true,配置好外部的elasticsearch的配置即可 + +### 5. 配置webserver不同的服务暴露方式 + +默认通过Ingress暴露服务,也可以使用以下方式: + +- 使用NodePort直接访问 + + ```yaml + webserver: + ingress: + enabled: false + ... + service: + type: "NodePort" + ports: + ... + nodePort: 32033 # 端口可以自定义 + ``` + + ```yaml + common: + ... + site: + domainUrl: http://127.0.0.1:32033/ # ip需要根据实际情况的进行配置,端口为上面配置的同一端口 + ``` + + 修改上述配置后,即可通过`ip:32033`的方式访问 + + ### 6. 开启权限验证 + 通过进行下面的配置: +```yaml +开启权限 +iam: + auth: + enabled: true + +// 配置权限中心和esb地址、app code、app secret,开启前端的auth +bkIamApiUrl: xxx +bkComponentApiUrl: xxx + +web: + ... + auth: + appCode: xxx + appSecret: xxx + esb: + appCode: xxx + appSecret: xxx + ... + webServer: + site: + authScheme: iam +``` + +### 7. blueking方式登陆 +```yaml +通过将登陆方式设置为蓝鲸登陆方式和配置蓝鲸登陆地址等信息: + +# pass地址 +bkPaasUrl: xxx +# bk-login地址 +bkLoginApiUrl: xxx + +web: + ... + webServer: + site: + appCode: bk_cmdb + ... + login: + version: blueking +``` + +## 常见问题 + +### 1. cmdb的helm chart启动后如何访问 + +答:因为默认的访问方式是通过ingress访问,域名为 cmdb.example.com,所以需要配置 cmdb.example.com 的dns解析,例如在机器的/usr/hosts文件中配置: + +```yaml +127.0.0.1 cmdb.example.com +``` + +在minikube环境通过下面指令启用` Ingress `控制器 +```yaml + minikube addons enable ingress +``` +配置完后,通过访问`cmdb.example.com/login`地址进行登陆,默认 的账号为`cc`,密码为`cc` + +### 2. 想要配置多个外置zookeeper地址作为服务中心怎么办? + +答:通过,(逗号)分隔,如下: +``` +configAndServiceCenter: + addr: 127.0.0.1:2181,127.0.0.2:2181 + +``` + +### 3. 想要配置多个外置redis地址怎么办? + +答:通过,(逗号)分隔,如下: +``` +redis: + ... + # external redis configuration + redis: + host: 127.0.0.1:6379,128.0.0.1:6379 + +``` + +### 4. 想要配置多个外置mongo地址怎么办? + +答:通过,(逗号)分隔,如下: +``` +mongodb: + # external mongo configuration + externalMongodb: + enabled: xxx + usr: xxx + pwd: xxx + database: xxx + host: 127.0.0.1:27017,127.0.0.1:27018 +``` + + + + diff --git a/docs/support-file/helm/web/templates/webserver/webserver-dpl.yaml b/docs/support-file/helm/web/templates/webserver/webserver-dpl.yaml index 7e44782e78..bfc071f5bf 100644 --- a/docs/support-file/helm/web/templates/webserver/webserver-dpl.yaml +++ b/docs/support-file/helm/web/templates/webserver/webserver-dpl.yaml @@ -44,6 +44,7 @@ spec: {{- if .Values.webserver.command.logDir }} - --log-dir={{ .Values.webserver.command.logDir }} {{- end }} + - --regdiscv={{ .Values.configAndServiceCenter.addr }} - --v={{ .Values.webserver.command.logLevel }} - --logtostderr={{ .Values.webserver.command.logToStdErr }} livenessProbe: diff --git a/docs/support-file/helm/web/values.yaml b/docs/support-file/helm/web/values.yaml index c7e1b4ab0e..c940795a94 100644 --- a/docs/support-file/helm/web/values.yaml +++ b/docs/support-file/helm/web/values.yaml @@ -381,8 +381,8 @@ web: ## @section bk-cmdb config and service center parameters ## -# configAndServiceCenter: -# addr: +configAndServiceCenter: + addr: ## @section mongodb parameters ## diff --git a/scripts/image.sh b/scripts/image.sh index 17c258155e..c3918b9792 100644 --- a/scripts/image.sh +++ b/scripts/image.sh @@ -1,42 +1,37 @@ #!/bin/bash -set -e - -ver="88ceed1-18.03.29" -image="" - -while getopts :i:h opt -do - case $opt in - i) - image=$(echo $OPTARG | sed 's_/_\\/_g') - ;; - :) - echo "-$OPTARG needs an argument" - exit - ;; - h) - echo "-i " - exit - ;; - *) - echo "-$opt not recognized" - exit - ;; - esac -done -if [ -z "$image" ];then - echo "please set the base image, eg: ./image.sh -i " - exit -fi +# image.sh用于一键打包cmdb镜像,在编译打包好的cmdb目录下执行 + +# copy dockerfile catalog +cp -r ../../../../docs/support-file/dockerfile/ . + +# 获取版本信息 +version=$(./cmdb_adminserver/cmdb_adminserver --version | grep "Version" | head -n 1 | awk '{print $3}') -#mypwd=$(echo $PWD | sed 's_/_\\/_g') -FILES=$(find "$(pwd)/docker" -maxdepth 1 -type f | grep Dockerfile) +# service list +services=(adminserver authserver coreservice eventserver operationserver toposerver apiserver cloudserver hostserver procserver taskserver webserver cacheservice datacollection synchronizeserver migrate) -for tmp_file in $FILES;do - echo "building image: ${tmp_file##*.}:${ver} ..." - sed -e "s/image_placeholder/${image}/g" $tmp_file > "$(pwd)/Dockerfile" - # build image - docker build -t "${tmp_file##*.}:${ver}" . - rm "$(pwd)/Dockerfile" +# cp binary file and conf dir +for service in "${services[@]}"; do + if [[ ${service} == "migrate" ]]; then + continue + fi + mkdir -p "dockerfile/${service}/cmdb_${service}" + cp -f "cmdb_${service}/cmdb_${service}" "dockerfile/${service}/cmdb_${service}/" + + mkdir -p "dockerfile/${service}/cmdb_${service}/conf" + cp -r "cmdb_${service}/conf/errors" "dockerfile/${service}/cmdb_${service}/conf/" + cp -r "cmdb_${service}/conf/language" "dockerfile/${service}/cmdb_${service}/conf/" done + +# 处理webserver +cp -dpr web "dockerfile/webserver/cmdb_webserver/" +cp -dpr changelog_user "dockerfile/webserver/cmdb_webserver/" + +# 打包镜像 +for service in "${services[@]}"; do + cd dockerfile/${service}/ + cat dockerfile + docker build -t "cmdb_${service}:${version}" -f dockerfile . + cd ../../ +done \ No newline at end of file