如何获取 Ansible playbook 中使用的变量列表?

2023-12-27

我想获取 ansible 剧本中使用的变量列表。 我研究了设置和调试模块,但我怀疑我能做到这一点。

有没有通用的方法?


看一眼vars

    - debug: var=vars

您将看到所有变量,其中一些变量作为属性重复hostvars

    - debug: var=hostvars

可以仅列出不在主机变量中的变量。例如,剧本

shell> cat playbook.yml
- hosts: test_01
  vars:
    var1: test
  tasks:
    - set_fact:
        my_vars: "{{ vars.keys()|
                     difference(hostvars[inventory_hostname].keys())|
                     list|
                     sort }}"
    - debug:
        var: my_vars

给出(删节)

ok: [test_01] => {
    "my_vars": [
        "ansible_dependent_role_names",
        "ansible_play_batch",
        "ansible_play_hosts",
        "ansible_play_hosts_all",
        "ansible_play_name",
        "ansible_play_role_names",
        "ansible_role_names",
        "environment",
        "hostvars",
        "play_hosts",
        "role_names",
        "var1"
    ]
}

你可以看到剩下的是特殊变量 https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html#special-variables和变量var1。我不知道有任何关于如何仅列出特殊变量的方法、过滤器或函数。如果您创建这样的列表,您可以创建差异并仅获取变量。

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

如何获取 Ansible playbook 中使用的变量列表? 的相关文章

  • 如何读取/理解目标主机上的ansible日志(由syslog编写)

    当你在某个主机上执行 ansible 时 它 会写入该主机上的 syslog 如下所示 Dec 1 15 00 22 run tools python ansible
  • 如何在 jinja2 中缩进嵌套的 if/for 语句

    我有一个很长的 Jinja2 模板 其中有很多嵌套if for声明 很难读 我想缩进 位 使其更清晰 但是 如果我这样做 这些块的内容也会进一步缩进 我怎样才能缩进just the bits 我正在使用安塞布尔 重现步骤 template
  • 如何使用 Ansible when 条件在文件中搜索字符串

    我有一个变量中用 n 分隔的搜索字符串列表listofips 我想在文件中搜索该字符串hello csv在我的下面playbook dir 我可能遇到一些语法问题 我不确定 但下面是我尝试过的 set fact listofips 10 0
  • 连接到上游时 Nginx 错误:(13:权限被拒绝)

    我在我的中收到此错误nginx error log file 2014 02 17 03 42 20 crit 5455 0 1 connect to unix tmp uwsgi sock failed 13 Permission den
  • 有没有办法同时拥有加密和非加密的主机变量?

    如果我加密host vars 文件与ansible vault 除了清单文件中的主机变量之外 我似乎没有机会拥有未加密的主机变量 我错过了什么吗 事实证明 http docs ansible com ansible intro invent
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • if else 在 ansible 打印语句中

    我需要有关具有多个条件的打印语句的语法的帮助 目前 报价为 inventory hostname 导致错误 如果我删除剧本运行的引号 但列出文本 inventory hostname 而不是变量 我想知道如何打印变量以及 if else 语
  • Ansible 列表未排序

    我有一个正在循环的列表 问题是它给出了一个奇怪的顺序 param yml 文件 my list a val1 b val2 c val3 d val3 这是我的简单调试循环 name debug debug msg item loop my
  • 在特定主机组上运行 ansible

    我正在尝试使用以下命令运行 ansible ansible playbook provision yml l webserver 我的主机文件包含以下主机组 webclient 172 29 4 75 webserver 172 29 4
  • 开发/生产中的 Ansible 服务器/组

    我所处的情况是看不到正确的使用方法 我有多个分配了不同角色的服务器 分布在多个组中 与生产 登台环境相比 我在本地 Vagrant 环境中遇到了一些使用 group vars 的困难 在生产中 有更多的服务器 分配的组更少 在我的 Vagr
  • Ansible:使用变量定义 playbook 主机

    我安装了以下版本 ansible 2 3 0 开发2131eaba0c 我想将我的主机变量指定为外部变量 然后在playbook与此类似 hosts integration In my 组变量 全部文件我有以下定义的变量 integrati
  • 如何使用ansible运行询问用户输入的脚本?

    我想使用 ansible 运行 shell 脚本 但 shell 脚本需要用户输入才能成功执行 例如 我的 shell 脚本询问唯一的 idossec agent 通过ansible我可以预定义我的unique id user input
  • 将 AnsibleUnsafeText 转换为 int

    假设 df 命令返回以下内容 john doe localhost df Filesystem 1K blocks Used Available Use Mounted on dev sda1 372607 170989 177862 50
  • 如何在ansible清单文件中设置host_key_checking = false?

    我想用ansible playbook命令而不是 vagrant provision 然而设置host key checking false in the hosts文件似乎不起作用 hosts file vagrant ansible s
  • Ansible - 默认/显式标签

    我有一本剧本 其中包含并标记了各种角色 name base hosts host default localhost roles role apt tags base apt ubuntu role homebrew tags base h
  • ansible playbook失败:超时(12秒)等待权限升级提示:“}

    我正在尝试在虚拟机上自动执行一些手动任务 作为其中的一部分 我的虚拟机没有直接的根访问权限 所以我必须使用不同的用户 然后升级到root 当我尝试切换到 root 用户时 密码提示与默认提示不同 我看到的提示如下图 user1 vm 1 t
  • Ansible - 当至少一项在循环中失败时跳过任务

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

    我需要设置变量 例如JAVA HOME并更新PATH 有多种方法可以做到这一点 一种方法是更新 etc environment变量并包含一行JAVA HOME使用文件行 http docs ansible com ansible linei
  • 恢复使用副本创建的备份文件

    如果使用创建备份文件copy with backup yes 例如 对于此任务 name copy file copy dest path to dest src path to src backup yes 如果文件path to des
  • 如果条件为 true 则运行一些包含 yml 文件

    我有一些剧本ubuntu and centos我想用main yml去检查when ansible os family RedHat or ansible distribution Centos 运行剧本 如一些和许多 当我跑步时 incl

随机推荐

  • 从 SCM 运行声明性 JenkinsFile 时出现“java.lang.NoSuchMethodError:找不到此类 DSL 方法‘管道’”

    我们有一个以声明式风格编写的非常简单的 Jenkinsfile pipeline agent any stages stage Test steps echo hello 当我们直接从 Jenkins v 2 107 0 中的管道作业中运行
  • Perl:正确传递数组供线程处理

    我正在学习如何在 Perl 中进行线程处理 我正在查看示例代码here https stackoverflow com questions 11596493 how to limit the max number of parallel t
  • 带 RecyclerView 的 AlertDialog

    我想创建自定义对话框 其中包含我的应用程序中的某些项目的列表 这是我的适配器代码 上下文上下文 ArrayList 状态列表 public MaritalStatusAdapter Context context ArrayList
  • NUnit 示例代码?

    我想学习如何使用 NUnit 我通过阅读然后使用真实代码来学习最好的方法 在哪里可以找到以示例方式使用 NUnit 的小型 简单的 C 项目 上面有很多很好的例子NUnit 的开发者维基 http nunit com devwiki cgi
  • 使用 scala、junit 时 Powermock 无法模拟静态方法

    我之前曾将 Powermock 与 java 和 junit 一起使用 我已经成功地能够模拟静态方法 如下例所示 PrepareForTest TimeHelper class MainApp class RunWith PowerMock
  • C# 中 get、set 属性的真正目的是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 属性与方法 https stackoverflow com questions 601621 properties vs methods C 公共字段与自动属性 https stackoverflow
  • 为多个域设置 httpS

    我需要为多个域名 xxxx com xxxx net 设置 https 使用单个通用证书 我们购买证书的 CA 要求创建证书签名请求 CSR 但是当我使用 openssl 生成它时 它只要求一个名称 如何为多个域制定一个 CSR 避免使用多
  • Angular2 中的条件验证

    我想对访客和客户注册表使用相同的模板 但验证可能会有所不同 如下所示 让我们假设它是宾客登记表 需要名字
  • Rails 3.0 设计通过回答问题重置密码

    我正在使用带有 Rails 3 的设备 在用户模型中 我为问题和该问题的答案创建了字段 我想知道如何按以下逻辑实现忘记密码 在忘记密码页面上用户输入用户名 在下一步中 应用程序应显示存储在数据库中的问题 用户回答问题 如果答案与数据库中存储
  • 随机访问随机排列[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想生成一个非常大的伪随机排列 p
  • SQL 查询查找特定 id 具有不同值但应相同的产品

    我需要一个 SQL 查询 它将获取相同 id 具有不同值的产品列表 产品属于表 A 和 Id 值属于表 B 并且两个表都可以通过列名 prod id 连接 我想要的输出 项目清单 product abc 因此 在输出中 我只需要产品 abc
  • 代码完成不列出消息处理程序

    When working on an old project in Delphi XE2 the code completion window that pops up after CTRL SPACE does not list mess
  • 按键从数组中删除行[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 如何从数组中删除特定元素 https stackoverflow com questions 2448964 php how to remove specific element from a
  • 只允许工厂方法实例化对象(防止实例化基类和未初始化的对象)

    我有一个处理 工作 的基类 工厂方法根据作业类型创建派生的 作业处理程序 对象 并确保使用所有作业信息初始化作业处理程序对象 调用工厂方法来请求分配的作业和人员的处理程序 public enum Job Clean Cook CookChi
  • 是否可以解密并查看 ViewState 值?

    我知道有一些工具可以让您查看 ASP NET 视图状态的内容 如果 viewState 已通过添加加密 是否可以查看和修改其内容
  • 如何对 mutate_each (和 summarise_each)使用匿名函数? [复制]

    这个问题在这里已经有答案了 正如我们所知 可以调用 R 中的函数而不将它们分配给环境 例如 gt function x x 2 5 1 2 5 我想在运行中使用这样的函数mutate each or summarise each 称呼 例如
  • PhoneGap Android 项目中的多个 Html 文件

    我正在使用 Eclipse 在 Android 中使用 Phone Gap Jquery Mobile 开发一个跨平台应用程序 我根本没有在我的应用程序中使用任何 PhoneGap 功能 我使用 PhoneGap 的目的是通过 Adob e
  • 将 RGB 颜色值转换为 0.75 alpha 的 RGBA

    我有以下代码来获取元素的背景颜色 var currentColor this css background color 返回类似的东西rgb 123 123 123 我现在想做的是将其转换为 rgba 并以 0 75 alpha 显示 所以
  • 如果远程服务器离线,Air XmlHttpRequest 超时?

    我正在编写一个通过 XmlHttpRequest 与服务器通信的 AIR 应用程序 我遇到的问题是 如果服务器无法访问 我的异步 XmlHttpRequest 似乎永远不会失败 我的 onreadystatechange 处理程序检测到 O
  • 如何获取 Ansible playbook 中使用的变量列表?

    我想获取 ansible 剧本中使用的变量列表 我研究了设置和调试模块 但我怀疑我能做到这一点 有没有通用的方法 看一眼vars debug var vars 您将看到所有变量 其中一些变量作为属性重复hostvars debug var