V3.1.7-V4.1.x升级指引

一、【升级前准备】

假设 src 和 install在 /data下,按各自实际情况调整,务必按照顺序执行

请务必认真详细阅读每一个文字并理解后才能操作升级事宜

注意事项(风险点说明)

  1. 本次升级为停服升级,请确保通知到用户后再开始执行升级操作。
  2. 更新前请自行做好数据备份工作
  3. 请按顺序执行升级操作,若有疑问,请立即反馈
  4. bkdata 不支持回滚
  5. 蓝鲸 业务不允许删除,如删除将导致配置平台快照数据、监控、日志检索、故障自愈、标准运维无法使用
  6. 升级完cmdb后务必确认蓝鲸业务ID是否为 3
    • 检查方法,登录到cmdb平台点击组织架构--业务--查看蓝鲸业务ID是否为3
  7. 下文中所以命令均假设 V3.1版本安装在 /data/ 下,请根据实际路径修改
  8. 升级不支持更改安装路径

1、升级Agent安装SaaS

  • Agent安装SaaS务必手动升级到4.0专用版本(V1.0.52),可从蓝鲸S-mart官网, 否则会造成Agent安装SaaS数据无法同步到节点管理上,后续Agent安装SaaS不做更新维护,由【节点管理】替代

2、 清理 crontab 任务

#在中控机执行
cd /data/install
./bkcec clean cron

3、 停止进程

#在中控机执行
cd /data/install
for m in bkdata fta job cmdb paas gse kafka license nginx consul; do
    ./bkcec stop $m
done
# 停止过程中license报错请忽略

# (必须)确认上述进程是否都是EXIT状态
for m in bkdata fta job cmdb paas gse kafka license nginx consul; do
    ./bkcec status $m
done

注意: 确保 consul nginx cmdb job paas bkdata kafka fta gse license 进程均为 EXIT 后,继续执行下面步骤

4、 解压 src

  • 备份 src 目录
# 在中控机执行

# (必须)请一定用 mv 备份 src 目录!!!
cd /data
mv src src.bak
  • 解压全量 src 包

src 包下载地址

tar xf bkce_patch-4.1.16.tgz   #程序包
tar xf bkce_common-1.0.0.tgz  #公共组件包
  • 恢复证书
cp src.bak/cert/* src/cert/
  • 恢复 bkarchiva 程序包
#由于该功能已经下架,新版src不带此目录
cp -r src.bak/bkarchiva  /data/src/

5、 升级部署脚本

在中控机执行 部署脚本下载地址

5.1. 备份 install 目录,请不要 mv install 目录!!!!

cd /data
#请不要使用mv,必须使用cp命令,不然会导致install目录内的.app.token发生改变
cp -a install install.bak

5.2. 解压 install_ce-x.x.tar.gz 包,内容覆盖到 install 目录中去

tar xf install_ce-x.x.tar.gz -C /data/

5.3. 还原三个用户配置(globals.env install.config ports.env)

cd /data/install.bak
cp globals.env install.config ports.env ../install

5.4. 返回 /data/install

cd /data/install

5.5. 更新 globals.env,增加 mongodb 的管理员帐号密码信息(密码请自行更改)

注意paas登录密码如果你在界面已经修改,请务必将globals.env内的paas_admin_pass的值改为一致

  • 添加到 globals.env 顶部
# vim:ft=sh

shopt -s nullglob
if [ -d $CTRL_DIR/third ]; then
    for f in $CTRL_DIR/third/globals_*.env; do
        source $f
        done
    fi

if [ -d $CTRL_DIR/extra ]; then
    for f in $CTRL_DIR/extra/globals_*.env; do
        source $f
        done
fi
shopt -u nullglob
  • 添加到 globals.env 最末尾
export MONGODB_USER="root"    # mongodb 全局用户名
export MONGODB_PASS='bk@321'  # mongodb 密码

# HAS_DNS_SERVER 选项, 域名解析通过 DNS server 还是通过配置 hosts
# 通过 hosts 配置映射关系时, 一下默认为0, 表示没有自己的 DNS server
#  此时, 会在所有机器上的 /etc/hosts 文件中添加 paas,cmdb,job 等平台的映射关系
export HAS_DNS_SERVER=0
export UPDATE_HOST_NAME=0

export GSE_AGENT_HOME=/usr/local/gse
#windows agent 的安装路径暂时不支持修改, GSE_WIN_AGENT_HOME的取值勿动!
export GSE_WIN_AGENT_HOME=/cygdrive/c/gse

export BIZ_ID=0

#若不能直连往外, 请关闭该选项
#若环境可以直连外网, 以下选项设置为1, 便于自动设置 NGINX 的外网 IP 的监听地址
export AUTO_GET_WANIP=0

#若无法自动获取外网 IP, 在需要跨云管理时, 在以下数组中填写 gse, nginx 的外网 ip 地址
export GSE_WAN_IP=()
export NGINX_WAN_IP=()

#安装部署 SaaS 应用需要使用到的 pip 源
export PYPI_SOURCE='pypi.douban.com'

export BK_TIMEZONE="Asia/Shanghai"
export BK_PROXY=

注意 export AUTO_GET_WANIP=0 这一行,如环境机器可以直连外网,请将0换成1。 若不能请将gse和nginx的外网IP填写到 export GSE_WAN_IP=() export NGINX_WAN_IP=()括号中

5.6. 更新 ports.env,增加新增的端口信息

# 添加到文件顶部位置

shopt -s nullglob
if [ -d $CTRL_DIR/extra ]; then
        for f in $CTRL_DIR/extra/ports_*.env; do
            source $f
        done
fi

if [ -d $CTRL_DIR/third ]; then
        for f in $CTRL_DIR/third/ports_*.env; do
            source $f
        done
fi
shopt -u nullglob
# 添加到文件尾部

export CC_API_PORT=8019
export RABBITMQ_PORT=5672
export RABBITMQ_DIST_PORT=15672
export RABBITMQ_ADMIN_PORT=25672
export GSE_OPS_PORT=58725
export GSE_OPTS_PORT=58636
export GSE_TRANS_PORT=58625
export GSE_TASK_API_PORT=48669
export GSE_TASK_APIV2_PORT=48673
export GSE_TASK_IO_PORT=48668
export GSE_CACHEAPI_PORT=59313
export GSE_PROC_PORT=52025
export GSE_PMS_PORT=52030
export CONNECTOR_REDIS_PORT=10053
export CONNECTOR_TSDB_PORT=10054

export INFLUXDB_PORT=5260
export CONSUL_HTTP_PORT=8500
export DATABUS_ES_PORT=10050
export DATABUS_MYSQL_PORT=10051
export DATABUS_ETL_PORT=10052
export DATABUS_REDIS_PORT=10053
export DATABUS_TSDB_PORT=10054
export DATABUS_HDFS_PORT=10055
export DATABUS_OFFLINE_PORT=10056

export CMDB_OBJECT_CTRL_PORT=31001
export CMDB_HOST_CTRL_PORT=31002
export CMDB_PROC_CTRL_PORT=31003
export CMDB_AUDIT_CTRL_PORT=31004
export CMDB_MIGRATE_CTRL_PORT=31005
export CMDB_HOST_PORT=32001
export CMDB_TOPO_PORT=32002
export CMDB_PROC_PORT=32003
export CMDB_ADMIN_PORT=32004
export CMDB_EVENT_PORT=32005
export CMDB_API_PORT=33031
export CMDB_OPENAPI_PORT=33062
export CMDB_WEB_PORT=33083
export MONGODB_PORT=27017

5.7 在 install.config 中增加 mongodb 和 influxdb 节点

# 新版 cmdb 需依赖 MongoDB
# bkdata 需依赖 influxDB
# 请根据实际机器配置分配
# 例:
1.1.1.1  xxx,xxx,xxx,xxxx,xxx,mongodb,influxdb

5.8 增加 bk_nodeman bk_monitor 的白名单

cd /data/install

source utils.fc
source ~/.bkrc
source initdata.rc

echo $INSTALL_PATH
# 返回的是您当前bkce安装的目录,若返回为空请务必将您当前安装路径写入.path文件内
echo $INSTALL_PATH >> .path     #将安装目录路径写到.path里面
_add_esb_whitelist    #添加白名单

5.9 (可选)若需要使用 “网络管理”,请按实际情况修改 bkco.env,并在 install.config 中增加 bknetwork

# 例:
1.1.1.1  xxx,xxx,xxx,xxxx,xxx,bknetwork

5.10 同步脚本更新

./bkcec sync common

5.11 适配新版服务状态检查,将所有机器上的$INSTALL_PATH/.installed_module内容合并到中控机的$INSTALL_PATH/.installed_sumary中,并去重。


source $CTRL_DIR/utils.fc

for ip in ${ALL_IP[@]}; do ssh $ip cat $INSTALL_PATH/.installed_module; done \
| sort -u > $INSTALL_PATH/.installed_sumary

# 并将 paas_agent 替换为 appo appt(如果没有appt,可以去掉)
sed -i '/paas_agent/d' $INSTALL_PATH/.installed_sumary
[[ -n "$APPO_IP" ]] && echo appo >> $INSTALL_PATH/.installed_sumary
[[ -n "$APPT_IP" ]] && echo appt >> $INSTALL_PATH/.installed_sumary

5.12 增加 bk_monitor 添加账号及 vhost 到 rabbitmq

# 执行下面操作需要看到有done返回才算成功
source $CTRL_DIR/utils.fc

rcmd root@$RABBITMQ_IP "rabbitmqctl add_user "bk_monitor" "$(_app_token bk_monitor)""
rcmd root@$RABBITMQ_IP "rabbitmqctl add_user "bk_data" "$(_app_token bk_data)""
rcmd root@$RABBITMQ_IP "rabbitmqctl set_user_tags bk_monitor management"
rcmd root@$RABBITMQ_IP "rabbitmqctl add_vhost bk_monitor"
rcmd root@$RABBITMQ_IP "rabbitmqctl add_vhost bk_data"
rcmd root@$RABBITMQ_IP 'rabbitmqctl set_permissions -p bk_monitor bk_monitor ".*" ".*" ".*"'
rcmd root@$RABBITMQ_IP 'rabbitmqctl set_permissions -p bk_data bk_data ".*" ".*" ".*"'

5.13 同步 src 更新

 cd /data/install
 ./bkcec sync all

【二、开始升级】

6、升级开源组件

6.1 更新 consul

# 在中控机执行
# 安装 consul
./bkcec install consul

# 启动
./bkcec start consul

# 确认其状态正常
./bkcec status consul

6.2 更新 mysql 配置

./bkcec stop mysql
./bkcec status mysql #必须进程exit
./bkcec install mysql 1
./bkcec start mysql

6.3 更新 nginx 配置

在中控机执行

  • 更新内容:
    1. 取消 nginx 默认过滤带下划线 headers 的限制
    2. 更新 agent 安装脚本
  • 更新步骤:
cd /data/install
./bkcec install nginx 1
# 启动
./bkcec start nginx

# 确认其状态正常
./bkcec status nginx

6.4 更新 kafka 配置

# 在中控机执行
cd /data/install

# 重新生成 kafka 配置文件
./bkcec render kafka

# 启动
./bkcec start kafka

# 确认其状态正常
./bkcec status kafka

6.5 更新 zk 数据

在中控机执行

cd /data/install
source utils.fc
source ~/.bkrc

zk_cmd="$INSTALL_PATH/service/zk/bin/zkCli.sh -server $ZK_IP0:$ZK_PORT"
$zk_cmd delete /gse/config/etc/operserver/all/pingcfg

【三、安装 DB】

7、 安装 MongoDB

# 在中控机执行
cd /data/install

# 安装 MongoDB
./bkcec install mongodb

# 初始化用户信息
./bkcec initdata mongodb

# 启动
./bkcec start mongodb

# 确认其状态正常
./bkcec status mongodb

8、 安装 influxDB

# 在中控机执行
cd /data/install

#安装 influxDB
./bkcec install influxdb

# 启动
./bkcec start influxdb

# 确认其状态正常
./bkcec status influxdb

9、 安装 cmdb3.0

# 在中控机执行
cd /data/install
source utils.fc
# (必须)删除无用 nginx 配置
ssh $CMDB_IP "rm -vf $INSTALL_PATH/etc/nginx/cmdb.conf"

./bkcec install cmdb
./bkcec start cmdb
./bkcec status cmdb  
# (必须)所有进程都 RUNNING 才能继续
./bkcec initdata cmdb

【四、迁移 原cmdb 数据】

10、在 mongodb 所在的机器上执行执行

  • 将 cmdb_upgrade_tool-0.7.0.tgz 上传到 mongodb 所属机器,根据以下指引迁移数据库
# 解压工具包,以 /data 目录为例
tar xf cmdb_upgrade_tool-0.7.0.tgz -C /data
cd /data/cmdb_upgrade_tool/
# /data/install参数表示 globals.env 所在目录,请根据实际修改
./create_dbupgrade_config.sh /data/install

# 检查生成的 template.conf 文件,各项参数自动生成是否正确
# [data-dir]下的 dir=配置表示 CMDB2.0 的备份数据存放路径,请保证磁盘空间足够

# 执行同步工具迁移数据
./dbupgrade --config=./template.conf --env=community

11、 重新加载 cmdb3.0 配置

  • 重启 cmdb 进程,加载配置
# 在中控机执行
cd /data/install
./bkcec stop cmdb
./bkcec start cmdb

12、升级 license

# 升级模块
./bkcec upgrade license

# 启动
./bkcec start license

升级完成后检查服务状态

./bkcec status license

13、升级 paas

# 升级模块
source /data/install/utils.fc
source ~/.bkrc

# 添加标记文件
touch $CTRL_DIR/.migrate/0001_open_paas_20180710-1600_mysql.sql

./bkcec upgrade paas

./bkcec initdata paas
# 启动
./bkcec start paas

./bkcec status paas

14、升级 gse

# 升级模块
./bkcec install gse

./bkcec initdata gse
# 启动
./bkcec start gse

./bkcec status gse

15、升级 job

source /data/install/utils.fc
source ~/.bkrc

# 添加标记文件
touch $CTRL_DIR/.migrate/0001_job_ce_20180712-1000_mysql.sql

# 升级job
./bkcec upgrade job
./bkcec initdata job

# 启动
./bkcec start job

# 检查状态是否正常
./bkcec status job

16、升级 bkdata

source /data/install/utils.fc
source ~/.bkrc
# 添加 标记文件
touch $CTRL_DIR/.migrate/0001_dataapi_20180714-0157_mysql.sql
touch $CTRL_DIR/.migrate/0001_monitor_20180503-0000_mysql.sql
# 升级bkdata
./bkcec upgrade bkdata
./bkcec initdata bkdata
# 启动
./bkcec start bkdata   #启动时会报init_snapshot_config错误提示可忽略

#查看状态
./bkcec status bkdata  #必须是runnning状态才能继续

# 清理无用任务
rcmd root@$BKDATA_IP "bash $INSTALL_PATH/bkdata/dataapi/bin/remove_old_task.sh"
#无报错信息,且有正常输出信息

rcmd root@$BKDATA_IP "workon dataapi; python manage.py migrate --database trt"
#无报错信息,且有正常输出信息

# 重启bkdata
./bkcec stop bkdata
./bkcec status bkdata
./bkcec start bkdata   #启动时间长,不可有任何报错信息,且有一堆正常输出

# 修复kafka组件问题

bash fix_topic_expire.sh  #将该脚本文件放到中控机执行,该脚本在V4CMDB数据迁移工具包里面

17、升级 fta

# 升级模块
source /data/install/utils.fc
source ~/.bkrc
# 添加 标记文件
touch $CTRL_DIR/.migrate/0001_fta_20180727-1814_mysql.sql
./bkcec upgrade fta

# 启动
./bkcec start fta

./bkcec status fta

18、升级 S-mart 应用

cd /data/install
./bkcec install saas-o

19、升级 gse_agent

  • 升级 蓝鲸 所在机器的 gse agent
cd /data/install
source utils.fc
for ip in ${ALL_IP[@]}; do
    ssh $ip "wget http://$NGINX_IP:$DEFAULT_HTTP_PORT/download/agent_setup_pro.sh; \
    bash agent_setup_pro.sh -m client -u"
done
  • 升级 业务机器 的 gse agent

    • 请使用 【节点管理】 app 的 agent 升级功能
  • 手动升级方法

    # 登录 需要升级的机器
    wget http://$NGINX_IP:$DEFAULT_HTTP_PORT/download/agent_setup_pro.sh
    bash agent_setup_pro.sh -m client -u
    

20、(可选)安装 网络管理

cd /data/install

# 开始安装
./bkco_install bknetwork

【六、验证】

  • 登录各平台检查是否正常
Copyright © 腾讯蓝鲸 2012-2018 all right reserved,powered by Gitbook最后修订日期: 2018-10-15

results matching ""

    No results matching ""