python - Ansible:如何使用字符串范围连接变量
问题描述
- hosts:all
tasks:
- name: set fact joing the variable and the range of strings
set_fact:
exclude_addrs: "{{ split_addr | join('.')[1-5] }}"
delegate_to: localhost
在我的情况下 split_addr 是 10.0.0 并且我期望的输出是 10.0.0.1, 10.0.0.2, 10.0.0.3, 10.0.0.4, 10.0.0.5
解决方案
您可以直接在您的变量中执行此操作,而无需运行任务。
这是我能想到的最快的例子:
---
- hosts: localhost
gather_facts: false
vars:
split_addr: "10.0.0"
range_length: 5
exclude_addrs: >-
{{
range(1, range_length+1) |
map('regex_replace', '([0-9]*)', split_addr + '.\1') |
list
}}
tasks:
- debug:
var: exclude_addrs
可能的进一步阅读:
推荐阅读
- vb.net - vb.net / excel dna 可选布尔参数
- java - 如何提高elasticsearch中的搜索速度(我的主要查询:术语查询和短语查询)?
- flutter - Flutter - 我能用 Flutter 创建一个模块并在我的 iOS 和 Android 项目中使用它吗?
- html - CSS 边框不能为 0
- python - Python将嵌套的for循环转换为对初始化的理解
- xml - 使用 XSLT 将 XML 转换为 XML 删除前导空格和零
- javascript - 实例上的正则表达式总匹配
- c++ - 行数和列数不匹配时输出不正确
- javascript - Multiple dropdown redirect to URL ( HTML )
- windows-10 - 无法通过 Anaconda Navigator 安装 Spyder