将变量内容复制到事实中后,Ansible 会抛出错误

2024-04-11

我有变量,其中包含带有其他模板引擎标记的字符串,不幸的是它们是三个花括号。如果我直接使用这些变量,一切都很好。如果我将它们复制到事实中以便随后修改它们,Ansible 会抛出错误。

示例剧本:

- hosts: localhost
  connection: local
  gather_facts: false
  vars:
    foo: "header/P-Asserted-Identity=<sip:{{ '{{{another_template_engine_string}}}' }}@127.0.0.1>"
  tasks:
    - debug:
        var: foo

    - set_fact:
        bar: "{{ foo }}"

    - debug:
        var: bar

我的输出ansible-playbook运行是这样的:

PLAY [localhost] **************************************************************************************************************************************************

TASK [debug] ******************************************************************************************************************************************************
ok: [localhost] => {
    "foo": "header/P-Asserted-Identity=<sip:{{{another_template_engine_string}}}@127.0.0.1>"
}

TASK [set_fact] ***************************************************************************************************************************************************
ok: [localhost]

TASK [debug] ******************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "An unhandled exception occurred while templating 'header/P-Asserted-Identity=<sip:{{{another_template_engine_string}}}@127.0.0.1>'.
  Error was a <class 'ansible.errors.AnsibleError'>, original message: template error while templating string: expected token ':', got '}'.
  String: header/P-Asserted-Identity=<sip:{{{another_template_engine_string}}}@127.0.0.1>"}

PLAY RECAP ********************************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

我必须如何格式化变量内容,以便我可以直接从 var 以及事实上使用它?

感谢所有提示。

PS:Ansible版本:

ansible [core 2.11.1]
  config file = None
  configured module search path = ['/Users/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/user/.venv/ansible3/lib/python3.9/site-packages/ansible
  ansible collection location = /Users/user/.ansible/collections:/usr/share/ansible/collections
  executable location = /Users/user/.venv/ansible3/bin/ansible
  python version = 3.9.10 (main, Jan 15 2022, 11:40:53) [Clang 13.0.0 (clang-1300.0.29.3)]
  jinja version = 3.0.1
  libyaml = False

你试过了吗!unsafe?

像这样:

 vars:
    foo: !unsafe "header/P-Asserted-Identity=<sip:{{ '{{{anot...

Docs

  • 高级语法 - 不安全或原始字符串 https://docs.ansible.com/ansible/latest/user_guide/playbooks_advanced_syntax.html#unsafe-or-raw-strings
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将变量内容复制到事实中后,Ansible 会抛出错误 的相关文章

  • 具有多个 SSH 密钥对的 Ansible

    我是 Ansible 的新手 我能够对其进行测试并且其工作正常 符合我的测试要求 为了在管理节点和客户端节点之间建立连接 我使用已经创建的 ssh 密钥对 如何使用具有不同 SSH 密钥对的另一个节点 作为参考 我正在考虑 3 个具有不同密
  • ansible if else 构造

    这是我的 if else Ansible 逻辑 name Check certs exist stat path etc letsencrypt live rootDomain fullchain pem register st inclu
  • 如何在ansible中为变量分配随机数?

    这是一个 ansible 脚本 我希望它能打印出相同的随机数 3 次 相反 它打印出三个随机数 如何将随机数分配给 ansible 中的变量 以便它在整个剧本中固定 name Test random filter hosts localho
  • Ansible inventory:aws_ec2 模块——寻找工作“groups:”函数的示例

    我有一个使用 aws ec2 模块的动态 ansible 库存 一般来说 它运作得很好 然而 有一个问题 我曾多次尝试使用 groups 关键字创建组 但所有尝试都失败了 文档有点稀疏 事实上 完整的文档就在这里 groups dictio
  • 如何删除或排除 Ansible 模板列表中的项目?

    我正在编写一个 Ansible 模板 需要生成主机组中的 IP 列表 排除当前主机IP 我在网上和文档中进行了搜索 但找不到任何允许您删除列表中项目的过滤器 我在下面创建了 hacky for循环来执行此操作 但想知道是否有人知道这样的过滤
  • 如何在 YAML 中使用 IF ELSE 和变量?

    我正在使用 Ansible Tower 的 YAML 文件 其中包含以下信息 name Package Deployment block name Update package package yum update cache True u
  • 获取 Ansible 控制机 IP 地址的最佳方法

    我正在使用 Ansible 和ufw在我的服务器上设置防火墙 作为ufw规则 我希望允许来自 Ansible 控制机的 SSH 但不允许来自其他任何地方 我的问题是 获取控制机本身的 IP 地址以便我可以将其放入规则中的最佳方法是什么 我知
  • 在 Ansible 中将 Python 脚本的输出转换为 dict

    我有一个名为test py这是 usr bin python a A 2 nB 5 print a 现在 在我的 Ansible 剧本中 我正在运行此脚本并使用此任务将输出注册到变量 name Create variable from th
  • Ansible:全局模板文件夹?

    谷歌搜索找不到任何东西 有group vars 全部 对于变量 有类似的模板吗 我想在多个角色中使用一些模板 您可以将全局模板放入templatesAnsible 布局顶层目录 与group vars 顺便说一句 全局文件也是如此 file
  • 根据磁盘可用空间获取节点IP

    我正在尝试编写一个 Ansible 剧本来检查多个服务器上的磁盘空间 到目前为止 这是我的 Ansible 剧本 hosts all become yes tasks name Check freespace shell df h awk
  • 如何将文件从 Ansible Tower 上传到 Artifactory?

    我每次都会收到此错误 但仅在尝试从 Ansible Tower 上传到 Artifactory 时出现在特定文件上 这些文件都是在清单主机上创建的Oracle Collection Tool 然后在上传到 Artifactory 之前获取到
  • 如果不满足某些条件,如何跳过ansible剧本中的所有其他剧本?

    我在下面的剧本中有多个剧本 如果不满足某些条件 我想忽略所有其他戏剧 因此 对于下面的示例 如果我在中找不到任何新文件Play1然后我不想执行Play2 and Play3根本没有 它应该跳过它 我怎样才能做到这一点 I have end
  • 如何使用Vault在Ansible中运行playbook api

    我有一本带有Vault的剧本 我可以运行它 ansible playbook info yml ask vault pass 现在 我想在 Ansible 中运行我的 playbook api 答案在如何使用Vault在Ansible v2
  • 使用 Python API 2.0.0.1 运行 Ansible Playbook

    安塞布尔版本 2 0 0 1 我现在已经四处寻找了很多 我发现的大多数文档要么不完整 要么已弃用 这篇文章适用于1 8 4版本 即 https stackoverflow com questions 27590039 running ans
  • 创建一个能够从容器注册表中提取的 Docker 就绪计算引擎

    我们使用 terraform 设置 GCE 实例 然后使用 ansible playbooks 来配置它们并将我们的服务转移到机器上 我正在我们的组织中运行一个项目 该项目需要从另一个项目中提取 Docker 映像 这些图像托管在另一个项目
  • Ansible 和硬件检查

    我必须使用 ansible 检查 Linux 机器上的不同硬件和配置元素 我完全不确定如何做到这一点 RAM 磁盘空间 DNS CPU 我知道我几乎可以找到我想要的所有事实都在 ansible 中 但我不明白如何使用它 例如 我必须检查 R
  • Ansible git clone“权限被拒绝”但直接 git clone 工作

    我在使用 Ansible 时遇到了一个令人不安的问题 我使用当前主机的 ssh 密钥在我的环境中设置 git 克隆 name Add user Public Key copy src Users alexgrs ssh id rsa pub
  • ansible:基于 extra-vars 文件的任务顺序

    我有包含 10 个任务的 ansible 剧本 任务的顺序因用例而异 因此我必须为每个用例创建 extraVar yml 文件 并且 extraVar yml 将定义任务的顺序 怎么做 Example 剧本 tasks name task1
  • 如何使用 Ansible when 条件在文件中搜索字符串

    我有一个变量中用 n 分隔的搜索字符串列表listofips 我想在文件中搜索该字符串hello csv在我的下面playbook dir 我可能遇到一些语法问题 我不确定 但下面是我尝试过的 set fact listofips 10 0
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K

随机推荐

  • 来自终端的 Linux powershell 命令返回命令未找到

    我有一个运行 Ubuntu Server 16 04 且带有 Powershell 的 Linux 机器 如果我从 Linux 终端运行 sudo powershell Invoke Webrequest http ipinfo io js
  • 如何测试在 VB.net TabControl 中选择了哪个选项卡

    我有一个带有两个 TabPage 的 TabControl 我想知道测试当前显示哪个选项卡的最佳方法是什么 我不知道为什么我无法弄清楚这一点 TabControl SelectedTab http msdn microsoft com en
  • F# 查询串联

    我在用SqlDataConnectionF 中的数据提供程序迁移一些行 迁移的一部分是在 3 个表之间进行连接 如下所示 将其视为表的继承A B C where B and C继承自A所以我需要得到的是 类似 Linq Bs Join As
  • 为什么非自定义标头包含在 Access-Control-Request-Headers 中?

    我正在尝试发送跨源请求 就Access Control Request Headers就我而言 我在 FireFox Chrome 和 Safari 中遇到了不同的行为 Chrome Access Control Request Heade
  • 如何在 Netbeans 中设置 java 编译器

    我正在进入 Java7 开发 并且我已将 JDK7 添加到Java 平台并在项目属性中选择它 但是当我编译时 我收到如下消息 warning java lang Boolean class java lang Boolean class m
  • 如何“对齐”2个字符串?

    首先让我解释一下 对齐 的含义 假设我们必须字符串 例如AGBCDEFABCDIEFK 他们的 结盟 是 A G B C D E F A B C D I E F K A B C D E F 另一个 相当简单的 例子 因为我相信我的问题可能与
  • 在 React 中使用 setState 更新对象

    我如何将多个状态传递给setState 这是一个例子 getInitialState function return list newFilm searchWord searchDetails componentDidMount funct
  • 使用javascript在两种颜色之间切换的最佳方法?

    Javascript初学者在这里 我本质上想做一个简单的切换 如果元素是黑色的 请将其更改为白色 如果是白色 请将其更改为黑色 function changeClass if document getElementById myButton
  • std::chrono 在当前日期上添加天数

    我想使用 std chrono 来查找根据过期时间计算未来的日期 过期期限是一个整数 指定 从现在起的天数 那么如何使用 chrono lib 来查找 100 天后的日期呢 假设你有一个time point http en cpprefer
  • `printf("...") || 的语义printf(“…”) || printf("…")`

    我想知道以下语句在 C 中会打印什么 printf hello n printf goodbye n printf world n 我通常习惯使用 cout 在 C 中打印一些内容 此外 我对这种方式使用的管道和双管道运算符感到困惑 谢谢你
  • 使用brew在MacOSx上安装Redis JSON

    如何使用brew 在 macOSx 上安装 RedisJSON 如何在不编译redis的情况下启用redis上的模块 我不想使用 docker 客户端 Redis Stack 可能是最简单的方法 它不仅仅是 RedisJSON 还包括 Re
  • 从 Node JS 中的生成器获取返回值

    我似乎无法弄清楚如何获取生成器的返回值 有人知道我做错了什么吗 function getGeneratorReturn var generator runGenerator var generatorReturn null var done
  • 使用 Mimes 验证 Laravel 文件 Post - Word 文件

    我有一张已发布的表格 我正在尝试使用验证来仅接受 Word 文档 我尝试使用哑剧类型 但似乎不起作用 而且我无法发现我的错误
  • SQLAlchemy 中的复杂外键约束

    我有两张桌子 SystemVariables and VariableOptions SystemVariables应该是不言自明的 并且VariableOptions包含所有变量的所有可能选择 VariableOptions有一个外键 v
  • 正确使用 Scala 特征和 case 对象

    为了掌握 Scala 类和特征的窍门 这里有一个简单的例子 我想定义一个指定各种操作的类 可以通过多种方式实现 我可以从以下开始 sealed trait Operations def add def multiply 例如 我可能会用一个
  • Windows 批处理脚本中的 URL 编码

    我有一个 Windows 批处理脚本 用于快速进行 Google 搜索 但是 我不知道如何对特殊字符进行一般编码 就像我尝试搜索 C 一样 井号会破坏它 这是我的代码 SET q https www google com q SET q q
  • Laravel Blade 使用自定义函数

    我有一个刀片 用于打印表格的内容 对于某些列 我需要根据要打印的值添加 CSS 类 例如 如果 OK 则添加绿色类 否则添加红色类 当然逻辑会更复杂 但重点是所有逻辑都会与风格相关 哪一个是保存此类函数 方法的最佳推荐位置 我需要创建模型吗
  • 如何在 Android 中以编程方式关闭“询问使用 WLAN”?

    我将收到 一个应用程序请求使用 WLAN 的权限 允许吗 当我尝试更改 WiFi 状态时 Android 5 1 真实手机三星 SM J5008 中的提示窗口 我有谷歌一些信息 例如https groups google com d msg
  • 在哪里可以找到 /usr/include/X11/extensions/Xcomposite.h

    我需要将我的应用程序放在全屏视频上并捕获它以放入我的 python tkinter 应用程序中的 画中画 框架中 我回顾了通常的嫌疑人 图像抓取 mss等 但它们似乎都只是抓取监视器上可见的内容 似乎没有人能够抓住一扇看不见的窗户 我在以下
  • 将变量内容复制到事实中后,Ansible 会抛出错误

    我有变量 其中包含带有其他模板引擎标记的字符串 不幸的是它们是三个花括号 如果我直接使用这些变量 一切都很好 如果我将它们复制到事实中以便随后修改它们 Ansible 会抛出错误 示例剧本 hosts localhost connectio