活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 聚力AI赋能 天翼云大模型专项 大模型特惠专区·Token Plan 轻享包低至9.9元起
  • 青云志云端助力计划 NEW 一站式科研助手,海外资源安全访问平台,助力青年翼展宏图,平步青云
  • 企业出海解决方案 NEW 助力您的业务扬帆出海,通达全球!
  • 天翼云信创专区 NEW “一云多芯、一云多态”,国产化软件全面适配,国产操作系统及硬件芯片支持丰富
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
星辰TokenHub
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V4-Flash
  • GLM-5.1
  • Qwen3.5-122B-A10B
  • DeepSeek-V3.2(旗舰版)
  • GLM-5(正式版)
智算一体机
  • 智算一体机
智能体引擎
  • 智能体引擎
可信数据空间
  • 可信数据空间
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入AI Store公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 智教云电脑
  • WPS 365 天翼云版
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)
  • 琥珀数据压缩归档服务

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2026智能云生态大会
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      天翼云CLI工具

      天翼云CLI工具

      • 天翼云CLI工具

      无数据

        • 产品动态
        • 产品动态
        • 产品介绍
        • 产品定义
        • 产品优势
        • 功能特性
        • 应用场景
        • 使用限制
        • 与其他服务关系
        • 计费说明
        • 计费说明
        • 快速入门
        • 管理VPC
        • 创建云主机
        • 用户指南
        • 安装CLI工具
        • 概述
        • Windows
        • Linux
        • macOS
        • 配置CLI工具
        • 使用CLI工具
        • 内置命令
        • 调用OpenAPI
        • 输出与过滤
        • 安装与使用Skill
        • 常见问题
        • 安装CLI工具
        • 安装Skill
        • 最佳实践
        • 云上CI/CD发布应用
        • 云资源巡检日报
        • 安全智能巡检
        • 文档下载
          无相关产品

          本页目录

          帮助中心 天翼云CLI工具 最佳实践 云上CI/CD发布应用
          云上CI/CD发布应用
          更新时间 2026-07-06 10:56:29
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2026-07-06 10:56:29
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接

          本场景为云上服务部署前脚本通过调用天翼云CLI,对各类资源的检查,实时拨测和部署完成的验证:

          • 发布前检查基础设施是否满足上线条件

          • 发布后验证 ELB 后端和公网访问是否正常

          • 失败时自动回滚应用版本

          • 全过程保留 CLI 请求日志和资源状态快照

          目标架构

          用户访问
            ↓
          EIP / 公网 ELB
            ↓
          ELB 监听器
            ↓
          后端 ECS:web-01、web-02
            ↓
          应用服务:8080

          CI/CD 阶段

          1. 发布前检查
          2. 构建应用
          3. 部署应用到 ECS
          4. 发布后验证
          5. 失败回滚
          6. 日志留痕

          具体步骤

          1.配置CI变更

          CTYUN_AK
          CTYUN_SK
          CTYUN_REGION_ID
          CTYUN_ELB_ID
          CTYUN_SECURITY_GROUP_ID
          CTYUN_TARGET_GROUP_IDS
          CTYUN_ECS_IDS="ecs-xxx,ecs-yyy"
          APP_HEALTH_URL="http://example.com/health"
          SSH_USER="root"
          SSH_PRIVATE_KEY
          APP_PACKAGE="web-app.tar.gz"
          APP_DEPLOY_DIR="/opt/web-app"
          
          确保日志留痕,开启ctyun-cli调用日志:
          export CTYUN_LOG=true
          export CTYUN_LOG_FILE="./ctyun-cli-ci.log"
          export CTYUN_LOG_FORMAT="json"

          2.发布前检查

          ctyun-cli version
          # 检查ecs
          ctyun-cli ecs GetEcsInstanceDetails \
              --regionID "$CTYUN_REGION_ID" \
              --instanceID "$ecs_id" \
              -o json
          # 检查elb
          ctyun-cli elb ShowLoadbalancer \
            --regionID "$CTYUN_REGION_ID" \
            --elbID "$CTYUN_ELB_ID" \
            -o json
          # 检查elb 监听器
          ctyun-cli elb ListElbListener \
            --regionID "$CTYUN_REGION_ID" \
            --loadBalancerID "$CTYUN_ELB_ID" \
            -o json
          #  检查后端主机组
          ctyun-cli elb ShowElbTargetGroup \
            --regionID "$CTYUN_REGION_ID" \
            --targetGroupID "$tg_id" \
            -o json
          # 检查健康检查
          ctyun-cli elb ShowElbHealthCheck \
            --regionID "$CTYUN_REGION_ID"  \
            --healthCheckID "$health_check_id"\
            -o json
          # 检查安全组
          ctyun-cli vpc DescribeVpcSecurityGroupRules \
            --regionID "$CTYUN_REGION_ID" \
            --securityGroupID "$CTYUN_SECURITY_GROUP_ID" \
            --pageNo 1 \
            --pageSize 50 \
            -o json

          部署前检查脚本示例,用户需要根据实际业务情况进行信息的检查:

          #!/usr/bin/env bash
          set -euo pipefail
          
          echo "[precheck] checking ctyun-cli"
          ctyun-cli version
          
          echo "[precheck] checking ecs instances"
          IFS=',' read -ra ECS_IDS <<< "$CTYUN_ECS_IDS"
          
          for ecs_id in "${ECS_IDS[@]}"; do
            echo "[precheck] ecs: $ecs_id"
          
            ctyun-cli ecs GetEcsInstanceDetails \
              --regionID "$CTYUN_REGION_ID" \
              --instanceID "$ecs_id" \
              -o json > "precheck-ecs-${ecs_id}.json"
          
            status=$(ctyun-cli ecs GetEcsInstanceDetails \
              --regionID "$CTYUN_REGION_ID" \
              --instanceID "$ecs_id" \
              --cli-query 'returnObj.instanceStatus' \
              -o json)
          
            echo "[precheck] ecs $ecs_id status: $status"
          
            if [ "$status" != '"running"' ]; then
              echo "ECS $ecs_id is not running"
              exit 1
            fi
          done
          
          echo "[precheck] checking load balancer"
          ctyun-cli elb ShowLoadbalancer \
            --regionID "$CTYUN_REGION_ID" \
            --elbID "$CTYUN_ELB_ID" \
            -o json > precheck-elb.json
          
          elb_status=$(ctyun-cli elb ShowLoadbalancer \
            --regionID "$CTYUN_REGION_ID" \
            --elbID "$CTYUN_ELB_ID" \
            --cli-query 'returnObj[0].status' \
            -o json)
          
          echo "[precheck] elb status: $elb_status"
          
          if [ "$elb_status" != '"ACTIVE"' ]; then
            echo "ELB $CTYUN_ELB_ID is not ACTIVE"
            exit 1
          fi
          
          echo "[precheck] checking listeners"
          ctyun-cli elb ListElbListener \
            --regionID "$CTYUN_REGION_ID" \
            --loadBalancerID "$CTYUN_ELB_ID" \
            -o json > precheck-elb-listeners.json
          
          echo "[precheck] checking target groups and targets"
          IFS=',' read -ra TARGET_GROUP_IDS <<< "$CTYUN_TARGET_GROUP_IDS"
          
          for tg_id in "${TARGET_GROUP_IDS[@]}"; do
            echo "[precheck] target group: $tg_id"
          
            ctyun-cli elb ShowElbTargetGroup \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              -o json > "precheck-target-group-${tg_id}.json"
          
            ctyun-cli elb ListElbTarget \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              -o json > "precheck-targets-${tg_id}.json"
          done
          
          echo "[precheck] checking security group rules"
          ctyun-cli vpc DescribeVpcSecurityGroupRules \
            --regionID "$CTYUN_REGION_ID" \
            --securityGroupID "$CTYUN_SECURITY_GROUP_ID" \
            --pageNo 1 \
            --pageSize 50 \
            -o json > precheck-security-group-rules.json
          
          echo "[precheck] passed"

          3. 应用部署,将业务滚动发布到各台ecs

          先部署 web-01
          检查 web-01 本机健康
          再部署 web-02
          检查 web-02 本机健康
          最后检查 ELB 整体健康

          4. 发布后验证

          验证项:
          ECS 进程是否正常
          ELB 后端是否健康
          公网健康检查 URL 是否正常
          
          # 检查ecs状态
          ctyun-cli ecs GetEcsInstanceDetails \
              --regionID "$CTYUN_REGION_ID" \
              --instanceID "$ecs_id" \
              --cli-query 'returnObj.instanceStatus'
              
          # 后端主机校验
          ctyun-cli elb ListElbTarget \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              -o json

          通过调用CLI,实现具体校验脚本如下:

          #!/usr/bin/env bash
          set -euo pipefail
          
          echo "[postcheck] checking ecs instances"
          IFS=',' read -ra ECS_IDS <<< "$CTYUN_ECS_IDS"
          
          for ecs_id in "${ECS_IDS[@]}"; do
            status=$(ctyun-cli ecs GetEcsInstanceDetails \
              --regionID "$CTYUN_REGION_ID" \
              --instanceID "$ecs_id" \
              --cli-query 'returnObj.instanceStatus' \
              -o json)
          
            echo "[postcheck] ecs $ecs_id status: $status"
          
            if [ "$status" != '"running"' ]; then
              echo "ECS $ecs_id is not running"
              exit 1
            fi
          done
          
          echo "[postcheck] checking elb targets"
          IFS=',' read -ra TARGET_GROUP_IDS <<< "$CTYUN_TARGET_GROUP_IDS"
          
          for tg_id in "${TARGET_GROUP_IDS[@]}"; do
            ctyun-cli elb ListElbTarget \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              -o json > "postcheck-targets-${tg_id}.json"
          
            ctyun-cli elb ListElbTarget \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              --cli-query 'returnObj[].{id:ID,instanceID:instanceID,status:status,health:healthCheckStatus,port:protocolPort}' \
              -o table
          done
          
          echo "[postcheck] checking public health url"
          curl -fsS --retry 5 --retry-delay 3 "$APP_HEALTH_URL"
          
          echo "[postcheck] passed"#!/usr/bin/env bash
          set -euo pipefail
          
          echo "[postcheck] checking ecs instances"
          IFS=',' read -ra ECS_IDS <<< "$CTYUN_ECS_IDS"
          
          for ecs_id in "${ECS_IDS[@]}"; do
            status=$(ctyun-cli ecs GetEcsInstanceDetails \
              --regionID "$CTYUN_REGION_ID" \
              --instanceID "$ecs_id" \
              --cli-query 'returnObj.instanceStatus' \
              -o json)
          
            echo "[postcheck] ecs $ecs_id status: $status"
          
            if [ "$status" != '"running"' ]; then
              echo "ECS $ecs_id is not running"
              exit 1
            fi
          done
          
          echo "[postcheck] checking elb targets"
          IFS=',' read -ra TARGET_GROUP_IDS <<< "$CTYUN_TARGET_GROUP_IDS"
          
          for tg_id in "${TARGET_GROUP_IDS[@]}"; do
            ctyun-cli elb ListElbTarget \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              -o json > "postcheck-targets-${tg_id}.json"
          
            ctyun-cli elb ListElbTarget \
              --regionID "$CTYUN_REGION_ID" \
              --targetGroupID "$tg_id" \
              --cli-query 'returnObj[].{id:ID,instanceID:instanceID,status:status,health:healthCheckStatus,port:protocolPort}' \
              -o table
          done
          
          echo "[postcheck] checking public health url"
          curl -fsS --retry 5 --retry-delay 3 "$APP_HEALTH_URL"
          
          echo "[postcheck] passed"

           

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  最佳实践
          下一篇 :  云资源巡检日报
          搜索 关闭
          ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2026天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明