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

【运维自动化-标准运维】变量的高级用法

在全局变量使用篇里了解到了各类变量的基本用法,实际在很多场景下,需要对变量进行处理,这就是标准运维里变量的高级用法。只要处理变量符合python语法,在一行代码语句的长度内可以执行的代码,系统均是可以进行渲染的。

  • 在变量b的字典键(key)中引用变量a
若${a}=“zone”已经定义了,如果要在${b}中的字典键(key)引用${a}的话,使用${b["%s_a" % a]}的方式引用的话,则会被渲染为${b["zone_a"]}
  • 计算一个60分钟以后的时间格式变量

比如在时间配置的输入参数中,我们想获取脚本当前执行的时间,以及60分钟以后的时间。可以参考下面的用法:

当前时间:${_system.task_start_time}
60分钟以后的时间:${(datetime.datetime.strptime(_system.task_start_time, "%Y-%m-%d %H:%M:%S")+datetime.timedelta(minutes=60)).strftime("%Y-%m-%d %H:%M:%S")}
  • 使用if-else 或 if-elif-else的语法

正常python语法是不支持一行带if elif else的,因此通过两(多)个if else的方式进行。

${"ts" if zone=="450" else "ts2" if zone == "820" else "autopath"}
  • 在变量中,空格替换成逗号

如果你有一个变量 a=“10166 10167 10170”,想把空格分隔符,替换成逗号分隔符,可以这样写:

','.join(i for i in a.split())

只需要将其用${}包裹起来,即可引用:

${','.join(i for i in a.split())}
  • IP变量,如果想转成一个列表格式,可以通过for语句

如果你有一个IP类型的变量a=“1.1.1.1,2.2.2.2,3.3.3.3”
想把它转成[“1.1.1.1”,“2.2.2.2”,“3.3.3.3”]的列表格式。
可以通过转换成for语句,使用分隔符替换的原理,拼接字符串,以便于形成列表格式

${'["'+'","'.join(str(i) for i in a.split(','))+'"]'}
  • 对象变量,如果输入参数为对象(有多个属性),循环迭代遍历,可使用表格类型的变量(此条用法由社区核心用户kevin贡献)

表格变量配置:${IPS}
变量使用:可以用脚本把表格的行数计算出来,作循环结束判断,用_loop-1下标调用:

${IPS.ip[_loop-1]},${IPS.idc[_loop-1]}

说明:适合产品版本 V6.1/V6.2/V7.0/V7.1

http://www.dtcms.com/a/344813.html

相关文章:

  • 去中心化的私有货币与中心化的法定货币的对比分析
  • 数据结构与算法-算法-283移动零
  • 深度分析AI边缘盒子在电力行业的应用与发展
  • 【LeetCode】22. 括号生成
  • 欲打造未来感十足的规划馆,应优先引入哪些沉浸式多媒体技术?
  • Spring Start Here 读书笔记:第9章 Using the Spring web scopes
  • 人脸识别驱动的工厂人体属性检测与预警机制
  • C#开源库ACadSharp读取dwg图元的示例
  • 为何她在“传递情报”时会被干扰?—— 探究 TCP 协议在无线环境中的信号干扰问题
  • 算法题复盘+代码解读(2)—— 两数之和
  • 【功能测试面试题】
  • 【数据结构】B+ 树——高度近似于菌丝网络——详细解说与其 C 代码实现
  • CVPR焦点 | 神经网络新范式:轻量化与精度并行,重塑视觉任务性能天花板
  • 解释一下,Linux,shell,Vmware,Ubuntu,以及Linux命令和shell命令的区别
  • 1337俚语的由来
  • Seaborn数据可视化实战:Seaborn时间序列可视化入门
  • Linux学习-网络编程2
  • .java->.class->java 虚拟机中运行
  • 51.Seata-TCC模式
  • 前端函数防抖
  • Nginx + Keepalived 实现高可用负载均衡集群
  • 前端桌面端解决方案技术选型:全面指南
  • 深入理解强化学习的target network
  • 3.5MM防水耳机插座
  • 为什么访问HTTPS站点时,会发生SSL证书错误
  • JAVA基础代码示例
  • SpringBoot -- 集成Spring Security (二)
  • LightGBM时序预测详解:从原理到 PSO 参数优化
  • 如何理解面向过程和面向对象,举例说明一下?
  • [docker/大数据]Spark快速入门