我有一个 ansible playbook,它以变量的形式引用了一些网络地址、cidr 地址以及数据中心名称和集群名称:
netName: "100-10.10.100.0/24"
networkCidr: "10.10.100.0/24"
有没有办法(正则表达式)在 100-
之前和可能在 /24
之后创建一个变量并删除?
datacenterName: "DC1"
clusterName: "DC1-TEST-GENERAL"
有没有办法只为 DC1
创建一个变量,然后用 ClusterName
或 datacenterName-TEST-GENERAL
填充 datacenterName-Environment-General
?也许创建一个 environment
变量并在几个不同的位置引用它?
我试图在我的 vars.yml 中减少变量,如果我可以向 yml 添加一些正则表达式,我可以消除一些。
编辑:
感谢您的回复,编辑了我的初始帖子并添加了更多内容,使其看起来比评论更清晰。
我想要得到的基本上就是这个。这是 vmWare 构建代码的网络部分:
- name: "{{ netName }}"
ip: "{{ hostLookup.ipv4addrs[0].ipv4addr }}"
netmask: "{{ netMask }}"
gateway: "{{ gateWay }}"
我有一个使用 nios 和主机查找从 Infoblox 获取 IP 地址的任务。那不是问题。
这是我的变量。
netName: "100-10.10.100.0/24"
networkCidr: "10.10.100.0/24"
netMask: "255.255.254.0"
我真的只想为 netName
输入 1 个变量,然后从该变量中提取 networkCidr
和 netMask
。我想有办法拉出 CIDR 并转换为子网掩码吗?