当前位置: 首页 > 知识库问答 >
问题:

为什么ansible评估变量没有在Playbook中使用?

单于亮
2023-03-14

我正在使用ansible 2.3.1.1和Jenkins。我遇到了以下问题--我的剧本使用aws动态库存中的变量变得非常慢。最有趣的情况是,如果我在jenkins工作区之外复制这个playbook,并在任何其他目录中运行,执行速度都是可以的。为了测试它,我从工作区目录/group_vars/all中删除了所有的变量文件-之后,这个剧本在工作区中的执行速度也可以了。因此,据我所知,ansible计算group_vars/all中的所有变量,即使它们在当前的Playbook中没有使用。那么,有人能解释为什么ansible这样做,以及如何调整它吗?

 - name: print something
  debug:
    var: hostvars["{{item}}"]['ec2_vpc_id']
  with_items: "{{groups['some_tag']}}"

==============

共有1个答案

韩博厚
2023-03-14

这就是thinks在当前版本中的工作方式。避免hostvars

您可以跟踪此问题的进展23349和17528。

 类似资料:
  • 在本节,我们主要介绍几种最常用的变量,在后面的章节中,我们会单独介绍一些复杂情景下变量的使用和覆盖原则。 在Playbook中常用的几种变量包含一下几种情况: 在Playbook中用户自定义的变量 用户无需自定义,Ansible会在执行Playbook之前去全程主机上搜集的关于远程节点系统信息的变量 在文件模版中,可以使用里面可以直接使用上述两种变量 把task的运行结果作为一个变量来使用,这个变

  • 下面是roles/role1/tasks/main.yml: 我的库存: 最后是host_vars/localhost.yml: 使用运行playbook时出现以下错误

  • 问题内容: 假设您将以下命令存储在变量中: 之间有什么区别 ?如果最后一个版本较短,为什么最后一个版本几乎从未使用过(据我所知)却完全相同? 问题答案: 第三种形式与其他两种形式完全不同,但是要理解为什么,我们需要在解释命令时使用bash时要遵循的操作顺序,并查看在使用每种方法时应遵循哪些操作。 报价处理 拆分为命令 特殊运算符解析 扩展 分词 乱语 执行 使用 从#1开始执行上述所有步骤。从而:

  • 问题内容: 在SQL Server中,如果 在where子句中,则其总值为false。这是违反直觉的,并导致了我很多错误。我确实了解和关键字是正确的方法。但是,为什么SQL Server会以这种方式表现呢? 问题答案: 在这种情况下,请将null视为“未知”(或“不存在”)。在这两种情况下,您都不能说它们相等,因为您不知道它们的价值。因此,null = null的计算结果不为true(false或

  • 问题内容: 另外,在网上可以找到许多创建静态变量的解决方案。(尽管我还没有看到我喜欢的一个。) 为什么Python不支持方法中的静态变量?这被认为是非Python的,还是与Python的语法有关? 编辑: 我专门询问了 为什么 进行设计决策,但我没有提供任何代码示例,因为我想避免解释来模拟静态变量。 问题答案: 忽略这一点的想法是,静态变量仅在以下两种情况下才有用:何时真正应该使用类以及何时真正应