如何使用 Ansible when 条件在文件中搜索字符串

2024-05-09

我有一个变量中用 '\n' 分隔的搜索字符串列表listofips

我想在文件中搜索该字符串hello.csv在我的下面playbook_dir

我可能遇到一些语法问题,我不确定,但下面是我尝试过的。

- set_fact:
    listofips: '10.0.0.1\n10.0.0.2\n10.0.0.3'

- set_fact:
    foundips: "{{ foundips + item + ', ' }}"
  when: lookup('file', "{{ playbook_dir }}/hello.csv").splitlines() | select('match', "{{ item }}") | list
  loop: "{{ listofips.split('\n') }}"

不幸的是,搜索字符串存在于文件中,但当条件不匹配时会出现错误。

我也想知道是否可以同时拥有exact match or a wild card match?

你能建议一下吗?


有几个问题需要检查:

A。 foundips: "{{foundips + item + ', ' }}"

在条件为真的第一次运行中,foundips没有初始化,会报错。你应该使用:

foundips: "{{ foundips|default([]) + [item] }}"

b. the select过滤器应使用此模式进行搜索:

select('match', '.*' + item + '.*')

c. the when条件设置不正确。您转换为列表,但为了确保获得结果,您需要检查列表的长度是否> 0:

when: lookup('file', "{{ playbook_dir }}/hello.csv").splitlines() | select('match', '.*' + item + '.*') | list | length > 0

d.如果您使用一个简单的调试任务来查看是否split('\n')按预期工作,您会意识到它不是,您需要使用double反斜杠:

loop: "{{ listofips.split('\\n') }}"

总而言之,请尝试执行此任务:

  - set_fact:
      foundips: "{{ foundips|default([]) + [item] }}"
    when: lookup('file', "{{ playbook_dir }}/hello.csv").splitlines() | select('match', '.*' + item + '.*') | list | length > 0
    loop: "{{ listofips.split('\\n') }}"

cheers

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Ansible when 条件在文件中搜索字符串 的相关文章

  • Ansible 多个清单文件

    我正在尝试将多个清单文件和动态清单与 Ansible 1 4 和 dev 一起使用 Ansible 返回没有匹配的主机 我有一个模拟场景 目录中有两个主机文件test列出该目录的内容 主机1 ini group1 test1 ansible
  • 无法获得与取消存档模块一起使用的“排除”选项

    我有一个 tar gzip 文件 我正在使用 ansible 取消归档模块将其提取到主机列表中 以下是configs tgz的部分内容列表 rw rw r ian ian 1295 2015 09 25 15 27 Makefile rw
  • PHP 搜索部分字符串

    如何在键入时搜索部分字符串 不使用 MySQL 例如 MySQL 中的 LIKE 函数 但在搜索字符串时使用 PHP 例如 但这显然行不通 但是有没有一个函数可以搜索部分字符串 那太好了 EDIT 如果它在数组中怎么办 如果我使用 strp
  • Django:Haystack 或 ORM

    在一个项目中 我实现了 Haystack 但现在我想知道使用 Haystack 相对于 ORM 有何优缺点 对于我的项目 我需要按书名和 isbn 查找书籍 我想如果你必须进行全文搜索 Haystack 会更有用 或者我是否遗漏了一些东西
  • 将 AnsibleUnsafeText 转换为 int

    假设 df 命令返回以下内容 john doe localhost df Filesystem 1K blocks Used Available Use Mounted on dev sda1 372607 170989 177862 50
  • 了解 FTS3/FTS4:什么是虚拟表并从中搜索具有可搜索的非虚拟表?

    阅读 SQLite3 的 FTS3 FTS4 文档的第一部分后 我现在感到非常困惑 我感到困惑的原因是散布在网络上的示例 我相信它没有涵盖所有可能的用例 另一个原因是我目前所处的情况 话虽如此 我有一个名为 Note 的表 其中包含两个类型
  • 使 IPTC 数据可搜索

    我对 IPTC 元数据有疑问 是否可以通过 IPTC 元数据 关键字 搜索不在数据库中的图像并显示它们 我将如何执行此操作 我只需要一个基本的想法 我知道 PHP 有 iptcparse 函数 我已经编写了一个函数来获取画廊文件夹和所有子目
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • Ansible:如何为Solaris设置全局路径

    我正在编写 Ansible 剧本来在 Solaris 服务器上设置和安装我们的应用程序 问题是我需要执行的 bash 脚本都假设某个目录位于 PATH 上 即 data bin 如果 Ansible 没有忽略所有这些 这通常不会成为问题 p
  • 如何将 UIWebView 中的输入的键盘按钮“返回”更改为“搜索”?

    我有一个简单的 HTML 文件 它将显示在 UIWebView 中 p p
  • 如何找到修改文件的最新 git 提交?

    我想找到修改源文件的最新提交 我可以用git blame查看每一行提交的所有日期 但很难准确地看出哪一次提交是最后一次接触文件 如何找到触及 git 存储库中给定文件的最后一次提交 git log https git scm com doc
  • 有没有办法使用正则表达式来匹配ansible中的主机?

    我正在尝试使用正则表达式模式与 ansible 匹配主机 但它没有按预期工作 我的库存情况如下 group1 hello1 world1 hello2 world2 group2 hello3 而我的任务是 debug msg item w
  • Solr 阿拉伯语

    我正在使用 Solr 来索引 3 种语言 阿拉伯语 法语和英语 的文档 我使用了这个 fieldType
  • Ansible - 当至少一项在循环中失败时跳过任务

    我正在使用 sqlplus 运行一些 SQL 脚本 在运行之前 我从该目录获取所有 sql 文件列表并将其存储在sql out如下所示 问题是 如果其中一个 sql 脚本失败 其余 sql 脚本仍然会执行 如果任何一个脚本失败 我想完全跳过
  • SQL 中的最佳 LIKE 搜索

    我有一个零件数据库 我将不断查询该数据库以获取报价系统 零件数据库有超过 1 400 000 条记录 用户将开始输入零件号 他们希望系统能够在仅几个字符后找到这些零件号 因此我需要能够进行通配符搜索 例如 SELECT NeededFiel
  • Bing 搜索 API 和 Azure

    我正在尝试以编程方式在 Microsoft Bing 搜索引擎上执行搜索 这是我的理解 有一个 Bing Search API 2 0 很快就会被替换 2012 年 8 月 1 日 新的 API 称为 Windows Azure Marke
  • 查找文本中所有关键字的有效算法

    我有很多字符串 其中包含许多不同拼写的文本 我通过搜索关键字来标记这些字符串 如果找到关键字 我将使用该关键字的关联文本 假设搜索字符串可以包含文本 schw schwa 和 施瓦茨 我有三个关键字 全部解析为文本 schwarz 现在我正
  • 字符串插值搜索

    对于那些不熟悉插值搜索的人来说 这是一种在排序数组中搜索值的方法 可能比二分搜索更快 您查看第一个和最后一个元素 并 假设数组的内容均匀分布 线性插值以预测位置 例如 我们有一个长度为 100 的数组 其中 array 0 0 和 arra
  • 检查给定字符串是否等于给定字符串集中的至少一个字符串的有效方法

    给定一组字符串 比如说 String1 String2 StringN C 中确定最有效的方法是什么 返回true or false 是否给定string s匹配上面集合中的任何字符串吗 Boost Regex 可以用于此任务吗 std u
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ

随机推荐