小哥之哥 小哥之哥
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小哥之哥

运维扫地僧
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • GO

    • GO语言基础

    • GO语言项目实战

      • Prometheus客户端Exporter开发
      • ocserv_exporter项目
      • cloud-station云商中转站
        • Prometheus监控系统对接钉钉告警通知
    • 编程
    • GO
    • GO语言项目实战
    tchua
    2023-07-05
    目录

    cloud-station云商中转站

    # 一、项目背景


    cloud-station云商中转站,主要用来在Docker或者pod环境时,我们想下载容器中文件时,可以直接使用该脚本,把文件上传至云存储,然后再进行下载,这样我们无需对容器做任何操作,把该脚本copy至容器即可。

    # 二、项目介绍


    源码地址cloud-station (opens new window)

    # 2.1 使用说明
    # 拉取代码
    https://github.com/tchuaxiaohua/cloud-station.git
    
    # 编译启动(依赖go环境)
    cd cloud-station
    go build  -ldflags "-s -w" -o cloud-station
    chmod +x cloud-station
    ./cloud-station --help
    
    1
    2
    3
    4
    5
    6
    7
    8
    # 2.2 支持参数

    我们把项目打包成二进制脚本后,可以通过帮助查看支持的参数

    root@b682544d4097:/go/cloud-station# ./cloud-station --help
    Usage: cloud-station COMMAND
    
    Usage:
       [flags]
    
    Flags:
      -i, --access-key-id string       AccessKey ID
      -k, --access-key-secret string   AccessKey Secret
      -b, --bucket string              指定bucket名称
      -C, --cloud string               指定云商【aliyun/txyun】
      -c, --config string              指定配置文件
      -t, --dingtoken string           钉钉token
      -e, --endpoint string            Bucker/Cos 对应的地域
      -h, --help                       help for this command
      -f, --localpath string           指定本地上传文件
      -p, --prefix string              指定上传后文件路径前缀
      -T, --title string               钉钉通知主题
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    参数说明

    • -i 云商子账号ak 需要对存储服务有读写权限
      • 对应环境变量SECRETID
      • 对应配置文件secretID
    • -k 云商子账号sk 需要对存储服务有读写权限
      • 对应环境变量SECRETKEY
      • 对应配置文件secretKey
    • -b 云商云存储名称,这里只有阿里云的时候需要,腾讯云或自动获取
      • 对应环境变量BUCKET_NAME
      • 对应配置文件bucketName
    • -C 指定云商,目前仅支持腾讯和阿里
      • 对应环境变量CLOUD_TYPE
      • 对应配置文件cloudtype
    • -c 配置文件,该工具支持三种方式对参数赋值,后面会详细说明
    • -t 钉钉通知时候机器人token
      • 对应环境变量TOKEN
      • 对应配置文件token
    • -e 云存储地域
      • 对应环境变量ENDPOINT
      • 对应配置文件endpoint
    • -f 需要上传的本地文件,不支持文件夹
      • 对应环境变量LOCAL_FILENAME
      • 对应配置文件localFilePath
    • -p 上传至云存储之后的路径前缀,比如${endpoint}/doc/pic.jpg ,前缀为doc
      • 对应环境变量BUCKET_PREFIX
      • 对应配置文件bucketPrefix
    • -T 钉钉通知时候的主题
      • 对应环境变量TITLE
      • 对应环境变量title
    # 2.3 变量三种注入方式
    # 2.3.1 命令行参数传递

    如果只是临时使用,推荐使用这种方式

    命令行参数传递的时候,需要注意,上面的参数除了title,其他都是必传,还需要注意云商类型。

    # 命令示例
    ./cloud-station -i ${ak} -k ${sk} -b ${bucketName} -e ${endpoint} -f ${uploadfile} -C ${云商} -t ${token} -c ${appconfig}
    
    1
    2
    # 2.3.2 环境变量方式

    环境变量就是配置系统变量

    系统变量方式,比较适合长期使用,环境变量,如果是Docker容器,可以在镜像构建时放在Dockerfile中,如果是pod,既可以在容器构建时放Dockerfile,也可以在yaml清单文件中

    # 2.3.4 配置文件方式

    配置文件,需要我们先创建一个app.yaml格式的文件,创建的时候确保该文件与脚本在同目录下,否则就需要使用-c参数指定,如果使用配置文件,则配置文件中的参数需要全部填写。

    配置文件示例
    cloud:
      secretID: "ak"
      secretKey: "sk"
      endpoint: "oss-cn-hangzhou.aliyuncs.com"
      bucketName: "bucket名称"
      bucketPrefix: "test"
      localFilePath: "上传文件"
    
    dingding:
      token: "钉钉机器人docker"
      title: "文件下载通知"
    
    cloudtype: "aliyun"
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 2.3.5 钉钉示例

    image-20230706094748207

    说明

    钉钉信息通知这里,我们可以看到中间两个字段,一个是应用,一个是ip,这我适配的是pod,因此,如果在Docker中,想要这两个也有值,则可以配置两个环境变量APPNAME,KUBERNETES_POD_IP

    编辑 (opens new window)
    #Go
    上次更新: 2023/07/06, 09:51:01
    ocserv_exporter项目
    Prometheus监控系统对接钉钉告警通知

    ← ocserv_exporter项目 Prometheus监控系统对接钉钉告警通知→

    最近更新
    01
    cert-manager自动签发Lets Encrypt
    09-05
    02
    Docker构建多架构镜像
    08-02
    03
    Prometheus数据迁移至VMstorage
    08-01
    更多文章>
    Theme by Vdoing | Copyright © 2023-2024 |豫ICP备2021026650号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式