跳转至
首页 解决方案 下载 文档
演示环境

OpsAny社区版v1.6.7升级指南

  • 如果您是老用户,请根据下面步骤升级,如果您是新用户请根据【安装部署】-【基础平台安装】文档全新安装。
  • 其它版本均需要按版本顺序升级到1.6.0之后,再升级到该版本,支持跨版本升级,例如从1.6.0直接升级到1.6.7。

升级步骤

必须严格按顺序执行,先更新PaaS代码,再执行更新操作,因为更新脚本都是在PaaS这个项目上。

1.更新OpsAny PaaS平台

1.1更新PaaS代码

cd /opt/opsany-paas && git pull

如果本地修过脚本中的密码,可以执行git checkout -- filename丢弃工作区的修改,待更新完毕之后再修改。

1.2更新ESB。ESB更新会替换配置,并重新导入ESB相关的SQL。

cd /opt/opsany-paas/install
./saas-esb-update.sh

2.更新OpsAny SAAS平台

2.1重新下载SaaS软件包,请查收更新通知邮件,或者在社区微信群获取

  • 请修改或确认saas-update.sh中的ADMIN_PASSWORD是否是admin正确的密码后执行升级操作。请重新下载最新的saas包并解压后继续。
  • 请注意,执行更新操作是会读取install.config配置文件,请确保配置文件正确,否则可能系统因为配置问题导致不可用。

2.2执行脚本进行自动上传和部署

cd /opt/opsany-paas/install
./saas-update.sh base

# 如果安装了监控平台可以执行更新,没有安装请不要执行。
./saas-update.sh monitor

# 如果安装了应用平台可以执行更新,没有安装请不要执行。
./saas-update.sh devops

注意:需要先确保新的包已经下载,解压完毕。OpsAny推崇熟人社交,拒绝陌生人,我们坚信技术人就应该相互学习,彼此协作。所以最新消息以社区微信群为第一通知渠道。没有找到社区群入口?在官网下载申请后,收到的邮件中有二维码哦,也或许是因为缘分还未到,把问题留给时间。

3.更新OpsAny Proxy

OpsAny Proxy是底层管理的通道,基本上每次更新功能,都可能涉及到该服务的更新,Proxy更新可以直接进行容器的替换操作后,执行数据库变更即可。本次更新由于配置文件发生了变化,所以需要替换配置文件模版后,使用sed进行配置的查找和替换。

3.1替换Proxy镜像

请根据更新文档,确定Proxy的最新镜像版本,停止并删除老版本容器,使用新镜像启动容器即可。

# Step1: 将配置应用到环境变量中,用于下面sed查找替换
cd /opt/opsany-paas/install
grep '^[A-Z]' install.config > install.env
source ./install.env && rm -f install.env

# Step2: 更新主机清单获取脚本和配置文件
/bin/cp ../saas/invscript_proxy.py ${INSTALL_PATH}/conf/proxy/
sed -i "s/LOCALHOST/${MYSQL_SERVER_IP}/g" ${INSTALL_PATH}/conf/proxy/invscript_proxy.py
sed -i "s/PROXY_PASSWORD/${MYSQL_OPSANY_PASSWORD}/g" ${INSTALL_PATH}/conf/proxy/invscript_proxy.py
chmod +x ${INSTALL_PATH}/conf/proxy/invscript_proxy.py

/bin/cp conf/proxy/settings_production.py.proxy ${INSTALL_PATH}/conf/proxy/
# Step3: 批量修改Proxy配置
sed -i "s/REDIS_SERVER_IP/${REDIS_SERVER_IP}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/REDIS_SERVER_PASSWORD/${REDIS_SERVER_PASSWORD}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/MYSQL_SERVER_IP/${MYSQL_SERVER_IP}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/MYSQL_OPSANY_PASSWORD/${MYSQL_OPSANY_PASSWORD}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/local-proxy.opsany.com/${PROXY_LOCAL_IP}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/public-proxy.opsany.com/${PROXY_PUBLIC_IP}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/RABBIT_SERVER_IP/${RABBIT_SERVER_IP}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/RABBITMQ_DEFAULT_USER/${RABBITMQ_DEFAULT_USER}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy
sed -i "s/RABBITMQ_DEFAULT_PASS/${RABBITMQ_DEFAULT_PASS}/g" ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy

# 停止旧版本Proxy容器
docker stop opsany-proxy && docker rm opsany-proxy

3.3启动最新版本Proxy

docker run --restart=always --name opsany-proxy -d \
        -p 4505:4505 -p 4506:4506 -p 8010:8010 \
        -v ${INSTALL_PATH}/logs:${INSTALL_PATH}/logs \
        -v ${INSTALL_PATH}/proxy-volume/certs/:/etc/pki/tls/certs/ \
        -v ${INSTALL_PATH}/proxy-volume/etc/salt/:/etc/salt/ \
        -v ${INSTALL_PATH}/proxy-volume/cache/:/var/cache/salt/ \
        -v ${INSTALL_PATH}/proxy-volume/srv/salt:/srv/salt/ \
        -v ${INSTALL_PATH}/proxy-volume/srv/pillar:/srv/pillar/ \
        -v ${INSTALL_PATH}/proxy-volume/srv/playbook:/srv/playbook/ \
        -v ${INSTALL_PATH}/uploads:/opt/opsany/uploads \
        -v ${INSTALL_PATH}/conf/proxy/settings_production.py.proxy:/opt/opsany-proxy/config/prod.py \
        -v ${INSTALL_PATH}/conf/proxy/invscript_proxy.py:/opt/opsany-proxy/invscript_proxy.py \
        -v ${INSTALL_PATH}/proxy-volume/pki:/opt/opsany/pki \
        -v /etc/localtime:/etc/localtime:ro \
        ${PAAS_DOCKER_REG}/opsany-proxy:1.2.21

3.3手工更新Proxy数据库

  • 警告可以忽略
docker exec -e OPS_ANY_ENV=production \
        opsany-proxy /bin/sh -c "/usr/local/bin/python3 /opt/opsany-proxy/manage.py makemigrations && /usr/local/bin/python3 /opt/opsany-proxy/manage.py migrate"

4.更新Websocket容器

OpsAny Websocket服务是堡垒机的底层连接通道,更新可以直接进行容器的替换操作。本次更新由于配置文件发生了变化,所以需要替换配置文件模版后,使用sed进行配置的查找和替换。

4.1停止旧版本Websocket容器并删除。

cd /opt/opsany-paas/install/
grep '^[A-Z]' install.config > install.env
source ./install.env && rm -f install.env
docker stop opsany-paas-websocket && docker rm -f opsany-paas-websocket
#根据实际情况,删除对应的镜像,请修改为正确的镜像地址和版本
docker rmi ${PAAS_DOCKER_REG}/opsany-paas-websocket:v3.2.13

4.2修改Websocket对应的配置文件

# Step1: 复制最新的配置文件到配置文件挂载路径。
cd /opt/opsany-paas/install/
/bin/cp conf/settings_production.py.websocket ${INSTALL_PATH}/conf/
/bin/cp conf/settings_production.py.websocket.init ${INSTALL_PATH}/conf/
# Step2: 批量修改websocket配置
sed -i "s/WEBSOCKET_GUACD_HOST/${WEBSOCKET_GUACD_HOST}/g" ${INSTALL_PATH}/conf/settings_production.py.websocket
sed -i "s/REDIS_SERVER_IP/${REDIS_SERVER_IP}/g" ${INSTALL_PATH}/conf/settings_production.py.websocket
sed -i "s/REDIS_SERVER_PASSWORD/${REDIS_SERVER_PASSWORD}/g" ${INSTALL_PATH}/conf/settings_production.py.websocket
sed -i "s/MYSQL_SERVER_IP/${MYSQL_SERVER_IP}/g" ${INSTALL_PATH}/conf/settings_production.py.websocket
sed -i "s/MYSQL_OPSANY_PASSWORD/${MYSQL_OPSANY_PASSWORD}/g" ${INSTALL_PATH}/conf/settings_production.py.websocket
sed -i "s/PAAS_PAAS_IP/${PAAS_PAAS_IP}/g" ${INSTALL_PATH}/conf/settings_production.py.websocket.init

4.3使用新镜像启动websocket服务

docker run -d --restart=always --name opsany-paas-websocket \
    -p 8004:8004 -v ${INSTALL_PATH}/logs:/opt/opsany/logs \
    -v ${INSTALL_PATH}/uploads:/opt/opsany/uploads \
    -v ${INSTALL_PATH}/conf/settings_production.py.websocket:/opt/opsany/websocket/config/prod.py \
    -v ${INSTALL_PATH}/conf/settings_production.py.websocket.init:/opt/opsany/websocket/config/__init__.py \
    -v /usr/share/zoneinfo:/usr/share/zoneinfo \
    -v /etc/localtime:/etc/localtime:ro \
    ${PAAS_DOCKER_REG}/opsany-paas-websocket:v3.2.23

5.更新Login服务

  • v1.6.6升级到v1.6.7不需要执行此更新操作,老版本直接升级到v1.6.7可能需要执行。本次Login服务更新是为了支持登录时选择不同的语言。

5.1替换login镜像

请根据更新文档,确定login的最新镜像版本,停止并删除老版本容器,使用新镜像启动容器即可。

cd /opt/opsany-paas/install
grep '^[A-Z]' install.config > install.env
source ./install.env && rm -f install.env
docker stop opsany-paas-login && docker rm opsany-paas-login

5.2启动最新版本login容器

docker run -d --restart=always --name opsany-paas-login \
    -p 8003:8003 -v ${INSTALL_PATH}/logs:/opt/opsany/logs \
    -v ${INSTALL_PATH}/conf/settings_production.py.login:/opt/opsany/paas/login/conf/settings_production.py \
    -v /etc/localtime:/etc/localtime:ro \
    ${PAAS_DOCKER_REG}/opsany-paas-login:v3.2.19

v1.6.7 版本更新记录

功能新增

  1. 全平台:页面背景安全水印,其它平台使用堡垒机支持选择网络代理;
  2. 全平台:增加多语言英文和繁体等功能(仅完成部分平台的多语言);
  3. 管控平台:增加网络设备纳管功能,和备份策略(仅支持部分网络设备,测试版本);增加数据库纳管(当前版本仅支持MySQL)
  4. 堡垒机:增加MySQL、Redis、网络设备功能;
  5. 云管平台:增加域名管理(当前版本仅支持阿里云)数据库管理(当前版本仅支持浪潮云)

缺陷修复和功能优化

  1. 工作台:工单相关功能修复与优化完善;
  2. 资源平台:解决资源仓库字段分组排序的问题;
  3. 云管平台:增加同步删除资源仓库对应数据;
  4. 应用平台:流水线模版编辑问题处理;

下线通知:

下架菜单:【管控平台】-【网络设备】

我们将在v1.7.0版本中正式下线网络设备管理功能,主要的原因就是因为不同的厂商和不同的设备类型,都需要做适配,通常我们在企业版实施的过程中,才会去做适配。那么因为该功能在社区版支持的设备类型比较少,导致用户有很大的疑问。根据宁缺毋滥的原则,所以决定下线该功能,已经使用的用户,可以提前弃用,选择其它解决方案。


Document