防止 ansible 在通过 with_items 传递时解析字符串

2023-12-03

我正在尝试使用with_items指定要传递给自定义 ansible 模块的键/值对列表。

当键或值字符串具有类似列表的格式时,就会出现问题。例如。,"[('a', 'b'), ('c', 'd')]"。在这种情况下with_items大概将字符串转换为列表并对我的配置造成严重破坏。

重现的最小示例(我正在使用debug模块,但对于自定义模块,行为是相同的):

- name: with_items_test
  debug: 
    msg: "{{ item.value }}"
  with_items:
    - { value: "[('a', 'b'), ('c', 'd')]" }
TASK [with_items_test] *********************************************************
ok: [localhost] => (item={u'value': u"[('a', 'b'), ('c', 'd')]"}) => {
    "item": {
        "value": "[('a', 'b'), ('c', 'd')]"
    }, 
    "msg": [
        [
            "a", 
            "b"
        ], 
        [
            "c", 
            "d"
        ]
    ]
}

Without with_items这样的字符串就可以很好地传递:

- name: with_items_test
  debug: 
    msg: "[('a', 'b'), ('c', 'd')]"
TASK [with_items_test] *********************************************************
ok: [localhost] => {
    "msg": "[('a', 'b'), ('c', 'd')]"
}

这不是关于如何with_items工作,但关于 Ansible 模板引擎。
Use string过滤以防止转换。看我的other回答详细信息。

- name: with_items_test
  debug: 
    msg: "{{ item.value | string }}"
  with_items:
    - { value: "[('a', 'b'), ('c', 'd')]" }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止 ansible 在通过 with_items 传递时解析字符串 的相关文章

随机推荐

  • 数据模板内的访问控制

    这是 XAML
  • 如何将 .py 更改为 .exe

    我用 python 编写了一个 py 格式的程序 但是 我希望它位于 exe 中 我发现的选项是 py2exe py安装程序 这两个程序的问题是因为我运行的是 python 3 6 而这两个程序不支持它 帮助 Python 3 6 仍然不受
  • 滚动视图中基于平移手势的移动视图控制器

    现在我有一个占据整个视图控制器的滚动视图 下面的代码能够移动滚动视图 但我想移动整个视图控制器 我该怎么做呢 override func viewDidLoad pan UIPanGestureRecognizer target self
  • 如何为 T-SQL 选择中的每一行生成随机数?

    我的表中的每一行都需要一个不同的随机数 以下看似显而易见的代码对每一行使用相同的随机值 SELECT table name RAND magic number FROM information schema tables 我想从中得到一个
  • Outlook 互操作异常

    尝试将 Outlook 自动化为 Microsoft Office Interop Outlook Application myApp new Microsoft Office Interop Outlook ApplicationClas
  • 寻找关键的最大价值

    我想找出面积最大的国家 我的数据集如下 Afghanistan 648 Albania 29 Algeria 2388 Andorra 0 Austria 84 Bahrain 1 Bangladesh 143 Belgium 31 Ben
  • 更改模型: 由 keras 在 model.summary() 输出中自动给出

    调用命令时 print model summary 我得到以下输出 如何重命名由 Keras 自动生成的突出显示字段 预先感谢您的帮助 有参数 名称 以函数格式 inp Input 10 out Dense 1 inp m Model in
  • 如何将多张图像合并为一张?

    我有几个图像 第三方 例如设置 mysql 设置通用 php 应用程序环境 设置第三方工具 我想制作一个 Dockerfile Docker Image 来组合这两个图像 然后运行更多命令 imageA imageV gt sharedIm
  • 封装在JavaScript中,存在吗?

    我有使用 C 编程语言的经验 但现在我还必须使用 JS 它对我来说相当新 我尝试用 JS 开发一个简单的类模拟 如下所示 http jsfiddle net T74Zm function A inputValue this Init inp
  • 如何让 rake 任务在 dev 以外的环境中运行?

    我有一台具有特殊 暂存 环境的暂存机 我总是忘记在该机器上运行 rake 任务 例如 rake jobs work RAILS ENV staging 所以我最终做了 rake jobs work 然后我很困惑为什么我的数据库中没有任何变化
  • pygame中.quit和.QUIT有什么区别

    我只是想知道之间的区别 quit and QUIT在 pygame 我已经测试了两者 但我仍然不明白它们是如何工作的 QUIT是事件类型的枚举常量 参见event模块 quit 事件在 pygame 窗口关闭时发生 for event in
  • Google App Engine python 入站邮件 LookupError:未知编码

    我按照示例使用 标准 入站邮件处理程序接收发送到我的 Google App Engine 应用程序的入站电子邮件在文档中 似乎发送到应用程序的某封电子邮件 不是由我发送 导致电子邮件 api 抛出 LookupError 未知编码异常 请参
  • 使用 jQuery 在浏览器调整大小时更改图像 src

    我有两张不同尺寸的图像 一张适用于小于 759px 的屏幕 另一张适用于大于 759px 的屏幕 我已经设法在文档加载时根据窗口宽度更改图像的来源 但我真的希望能够在调整浏览器大小时执行此操作 但在我的一生中 我无法让它执行此操作 它似乎只
  • 图像处理以去除线条

    我试图最终得到一张只有文本的图像 我的代码会将此图像视为灰度 并从中删除所有长线以及除文本 符号 测量值之外的所有内容 Is this something that can be accomplished using image proce
  • 如何从Oracle SQL中的字符开头删除定义的值?

    我在 Oracle SQL 中有如下表 col1 ABC 1234 ABC 55674 ABC 11 所以我在 col1 中有 总是 ABC 在每个值的开头 ABC 后不同长度的值 我需要如下结果 所以我需要删除 ABC 从每个值的开头 c
  • Pyparsing:获取结果名称中的标记位置

    我正在开发一个使用 pyparsing 解析命令行的程序 它使用 readline 库来提供命令编辑和完成 在应用程序的上下文中 有效的命令行是path 可选 然后是命令名称 可选 和一些参数 也是可选的 为了提供命令完成 应用程序解析命令
  • htmlspecialchars 和 mysql_real_escape_string 是否可以保护我的 PHP 代码免受注入?

    今天早些时候有人问了一个关于Web 应用程序中的输入验证策略 在撰写本文时 最佳答案建议PHP只是使用htmlspecialchars and mysql real escape string 我的问题是 这总是足够的吗 还有更多我们应该知
  • 如何从数组中删除所有数字?

    我正在尝试从数组中删除所有数字 该循环完全按照我想要的方式工作 但 splice 方法仍然由于某种原因跳过一些元素 let arr 1 2 3 4 5 notanumber 6 for let element of arr let inde
  • 使用 python os.rename 时出现错误 [183]

    这是我第一次使用 python 我一直遇到错误 183 我创建的脚本在网络中搜索所有 py 文件并将它们复制到我的备份驱动器 请不要嘲笑我的剧本 因为这是我的第一个剧本 我在脚本中做错了什么有什么线索吗 import os import s
  • 防止 ansible 在通过 with_items 传递时解析字符串

    我正在尝试使用with items指定要传递给自定义 ansible 模块的键 值对列表 当键或值字符串具有类似列表的格式时 就会出现问题 例如 a b c d 在这种情况下with items大概将字符串转换为列表并对我的配置造成严重破坏