首页 > 其他分享 >ansible中map

ansible中map

时间:2023-02-22 17:33:33浏览次数:39  
标签:map ok list ansible func debug localhost

一、简介

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"
]
}

标签:map,ok,list,ansible,func,debug,localhost
From: https://blog.51cto.com/u_13236892/6079263

相关文章

  • 解决java.lang.NoClassDefFoundError:Could not initialize class net.sf.cglib.beans
    异常描述项目引入Alibaba的EasyExcel工具,编译没有报错,在请求导出Excel文件的接口时,log异常出现以下错误java.lang.NoClassDefFoundError:Couldnotinitializeclassnet.......
  • SpringBoot中自动生成实体类及mapper
    参考博客: https://blog.csdn.net/qq_35387940/article/details/1257774571.准备好数据库和表mysql在windows环境下安装参考: https://blog.csdn.net/weixin_43423484/......
  • MapReduce原理——切片代码分析
    (1)程序先找到数据存储的目录(2)遍历目录对每个文件进行切片(3)遍历一个文件:获取文件大小计算切片大小默认情况下,切片大小等于blocksize......
  • ansible playbook role及调试
    目录ansibleplaybookrole及调试role简介创建role步骤role中变量设置使用default定义变量使用命令行的变量在palybbok.yml文件直接定义变量在var中定义自己的变量pre_tas......
  • ansible playbook include
    目录ansibleplaybookincludeincludeinclude_tasksinclude_asks基本使用include_tasks使用tagsimport_tasks使用include_tasks和import_task区别一include_tasks和import_......
  • 自研的内存分析利器开源了!Android Bitmap Monitor 助你定位不合理的图片使用
    大家好,我是shixin。在日常工作中,我们往往只关注Java内存使用情况,这主要是因为Java内存分析相关的工具比较多。与之不同的是,图片内存分析的工具比较少,当分析图片内......
  • ansible 高级属性
    目录ansible高级属性本地执行任务委托任务暂停滚动执行只执行一次设置环境变量交互式提示tags标签为task打tag执行一个设定tag一次指定多个tag执行排除指定tag的task查看p......
  • MapReduce框架原理
    原理一:切片与MapTask并行度决定机制MapTask之前了解到了,他是在分布式程序在map阶段的一个进程,管理之一个map任务类似于一个master。那么什么是切片?说起切片,很明......
  • Map数据结构详解
    MapObject本质上是键值对的集合(Hash结构),但Object只能将字符串当做键,这就给Object带来了很大的限制。letdata={}lets={name:'东方不败'}data[s]='西......
  • 03-Go数组、切片、可变长参数、maps
    1数组#1数组是类似于数字、字符串、的基础数据类型#2数组是同一类型元素的集合eg:整数集合:5,8,9,79,76形成一个数组Go--数组:不允许混合不同类型......