查看原文
其他

蓝鲸离线部署二三事

木讷大叔爱运维 木讷大叔爱运维 2022-07-13

点击上方蓝色字体,关注我们




读完需 5 分钟

 速读需 2 分钟 



概述

最近需求在离线环境下部署了蓝鲸5.1.29,但是由于依赖yum、pip源,因此在配置文件中设置了BK_PROXY,以便在部署中安装相关依赖组件。但是部署并没有一帆风顺,还是出乎意料的遇到了问题。下面我们来进行分享下。


问题

由于设置了BK_PROXY,在安装paas、cmdb、 app_mgr、job、bkdata、fta、gse_agent等组件没有问题,但是部署saas应用,如:bk_fta_solution、bk_nodeman时会出现问题:

(1)bk_install saas-o bk_fta_solutions控制台打印

(2)/data/bkce/logs/paas_agent/agent.log(appo所在节点日志)

究其原因是通过virtualenv创建虚拟环境时默认会安装seeder模块,如setuptools、pip、wheel,但是这些模块需要通过pip源安装,如果此时没有网络或本地pip源,会导致超时。我们已经设置了BK_PROXY来代理上网,但是为什么没有生效呢?


分析

无论通过开发者中心或是"bk_install saas-o bk_fta_solutions “安装saas时就会调用buildsaas。

# vim /data/bkce/paas_agent/paas_agent/etc/build/virtualenv/saas/buildsaas# 其中第134行:/opt/\$py_version/bin/virtualenv --system-site-packages --no-setuptools $WORKON_HOME/\$APP_CODE

此行作用就是创建虚拟环境,一旦执行就会出现如上图片中的问题。


我们通过添加"echo $BK_PROXY"打印到日志,发现是可以读取到代理的,但是virtualenv并没有使用代理。


参考 /data/install/utils.fc中关于代理的使用,那么我们就应该知道如何解决了。

# vim /data/install/utils.fchttp_proxy=$BK_PROXY https_proxy=$BK_PROXY virtualenv -v --system-site-packages --no-setuptools /data/bkce/paas_agent/apps/Ensv/xxxxxhttp_proxy=$BK_PROXY https_proxy=$BK_PROXY piphttp_proxy=$BK_PROXY https_proxy=$BK_PROXY  yum


扩展:通过此行代码,我们还可以得到如下信息:

# 1.virtualenv命令所在位置/opt/py27_e/bin/virtualenv# 2.创建的虚拟环境所在目录/data/bkce/paas_agent/apps/Envs


解决

  1. 确认BK_PROXY是否设置
    在/data/install/global.env 中查看BK_PROXY代理,但是即使设置了,在buildsaas中也不会调用,接下来我们还需要手动调整下buildsaas中的代码。

  2. virtualenv处使用代理


    3.  yum处使用代理


通过如上代码调整,可以实现saas的正常安装。如果不在代码中设置BK_PROXY代理,而是直接使用服务器的全局代理http_proxy,虽然也能安装成功,但是一直跳转到登录页 ,而无法登录。


注意:buildsaas在哪台服务器,可以根据/data/install/install.config中appo所在节点进行查找。


总结

  1. 在未设置本地的yum源、pip源的情况下,蓝鲸并不能进行完全离线部署。当然在virtualenv创建虚拟环境后,我们可以自行导入pip离线包。

  2. 外网代理除使用BK_PROXY外,还是添加本地hosts方式代理上网,此种访问方式可以避免调整代码,但是需要逐个添加需要上外网的域名。



运维思考:运维管理与运维自动化

Prometheus+k8s之告警通知

grafana+alertmanager实现微信报警

滴滴夜莺:从监控告警系统向运维平台演化

离了蓝鲸也能交付虚拟机

Ventoy:新一代多系统启动U盘解决方案


关注我们




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存