当前位置: 首页 > article >正文

【框架】环境切换集成封装

前提:

在公司里可能会存在多套环境,每个环境对应项目的数据库、redis、域名、用户等等都不太一样,尽管我们有配置文件,但是手动改起来也是很麻烦,我们希望能够在框架里执行时,只需要指定环境名称即可,他们能够自动将各个环境配置信息切换到当前执行中来针对各个环境编写配置文件比如公司有sit环境,dev环境、test环境等,针对这些环境分别使用sit/uat/dev等来命名,分别在config目录下创建他们几个的环境配置文件,文件名称命名规则env_xxx.yaml

env_test.yaml

思路

前提:配置相关的信息,这里以yaml文件存储,如下(也可以放到一个文件,随便,这里是分开的,当然你也可以用其他文件类型)
common.yaml- 存储账号一些信息
host.yaml- 存储环境ip和端口号等信息
redis.yaml-存储redis等相关信息
…等等

此时新建一个中间文件,存储不同环境的信息,包含上述内容,比如:
env_test.yaml

common:
  buyerName:
    - 13xx
    - 13xx
  buyerPassword:
    - xxx
    - xxx
  managerName: xx
  managerPassword: xx
  sellerName: xx
  sellerPassword: xx

http:
  buyer: http://xx:7002
  seller: http://xx:7003
  manager: http://xx:7004

首先根据终端输入的环境(test、uat等),通过sys.argv 读取环境参数后,拼接路径env_{test}.yaml,读取文件内容后,分别写入common、host等yaml文件中

环境信息传递的设计和封装

1.执行时如何指定环境名称

整体框架执行入口是run.py,那么run.py在未来我们做持续集成时肯定是通过命令行执行的方式去进行的
python run.py
那么注意在python里命令行执行脚本时我们是可以给脚本传递外来参数的,所以我们的设计时把环境名称作为run.py的外来参数
python run.py test
python run.py dev
上面指定后,如何接收呢

2.代码封装

1.通过sys.args得到命令行传递的环境名称
2.根据得到的环境名称,拼接该环境对应的配置文件名称路径,config/env_test.yml
3.读取该环境配置文件中的所有信息
4.分别将环境中的common写入common.yml,将http写入http.yml等
yaml写入:dump()方法


http://www.kler.cn/a/428595.html

相关文章:

  • Kubernetes 集群中安装和配置 Kubernetes Dashboard
  • 2. CSS 中的单位
  • 为什么你的 Qt 应用程序会出现 xcb 插件错误
  • 基于Python django的音乐用户偏好分析及可视化系统设计与实现
  • 走进DevOps:让开发与运维齐头并进
  • 一次理清楚Java中的日期和时间
  • CSS3 布局样式及其应用
  • 【机器学习】机器学习的基本分类-监督学习-岭回归(Ridge Regression)
  • 4.1模块化技术之函数,本地类
  • Flink 核心知识总结:窗口操作、TopN 案例及架构体系详解
  • 如何使用 Python 实现链表的反转?
  • C++_关于异常处理throw-try-catch
  • MATLAB 非重叠点云提取算法(92)
  • C++的一些经典算法
  • java 服务端tcp方式接收和推送数据到c++或者qt(亲测可用)
  • 机器学习经典算法
  • C# 的GDI风车控件
  • FFmpeg+Nginx+VLC打造M3U8M3U8点播
  • STM32MX 配置CANFD收发通讯
  • Java 并发舞台:多线程小精灵的奇幻冒险之旅
  • 第二十二天 TensorFlow基础
  • Android 常用倒计时技术和实现方式
  • element UI的Cascader 级联选择器在树形列表中编辑使用
  • 使用Excel的COUNTIFS和SUMIFS函数进行高级数据分析
  • 面向对象系统的分析和设计
  • QNX的安全文件策略:SECPOL