ansible中的map
ansible中的filter: map ,其实是jinja2中的filter
python中 map(func, iter) 返回func与每个元素计算后的迭代器,iter是个可迭代对象
ansible中的map和python中的基本上用法相似。
1、value | map('func') : 没有仔细看代码,func可能是只能用jinja2的filter。举例来说,
--- - hosts: localhost vars: t1: ['abc','cde'] tasks: - name: upper debug: var=t1|map('upper')|list ########################### ok: [localhost] => { "t1|map('upper')|list": [ "ABC", "CDE" ] }
2、如果func需要多个参数,如替换 map('regex_replace','[0-9]+','foo') | list
--- - hosts: localhost vars: mylist: - group_1 - group_2 tasks: - debug: msg: "{{ mylist | map('regex_replace', '([0-9]+)', 'foo') | list }}" ############################################ PLAY [localhost] *************************************************************** TASK [debug] ******************************************************************* ok: [localhost] => {} MSG: [u'group_foo', u'group_foo'] PLAY RECAP ********************************************************************* localhost : ok=1 changed=0 unreachable=0 failed=0
3、还有一种常用的方法,就是attribute=key的用法
--- - hosts: controller tasks: - name: get ifconfig shell: ifconfig {{ item }} | awk '/inet/{print $2}' register: ifout with_items: - 'br-ex' - 'br-mgmt' - debug: var=ifout.results|map(attribute='stdout')|list ####################################### TASK [debug] ******************************************************************* ok: [192.168.10.3] => { "ifout.results|map(attribute='stdout')|list": [ "172.16.20.3", "192.168.10.3" ] } ok: [192.168.10.4] => { "ifout.results|map(attribute='stdout')|list": [ "172.16.20.4", "192.168.10.4" ] }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类