Ansible:如何从另一个变量构造一个变量,然后获取它的值

2024-03-14

这是我的问题,我需要使用一个变量“target_host”,然后将“_host”附加到它的值以获取我需要其值的另一个变量名称。 如果你看看我的剧本。任务 nbr 1,2,3 获取变量的值,但是 nbr 4 无法执行我所期望的操作。有没有其他方法可以在ansible中实现相同的目的?

   ---
    - name: "Play to for dynamic groups"
      hosts: local 
      vars:
        - target_host: smtp
        - smtp_host: smtp.max.com
      tasks:
        - name: testing
          debug: msg={{ target_host }}
        - name: testing
          debug: msg={{ smtp_host }}
        - name: testing
          debug: msg={{ target_host }}_host
        - name: testing
          debug: msg={{ {{ target_host }}_host }}


Output:

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "smtp"
}

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "smtp.max.com"
}

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "smtp_host"
}

TASK: [testing] *************************************************************** 
ok: [127.0.0.1] => {
    "msg": "{{{{target_host}}_host}}"
}

如果你有一个像这样的变量

vars: myvar: xxx xxx_var: anothervalue

Ansible 的工作语法:

- debug: msg={{ vars[myvar + '_var'] }}

会给你类似的:

- debug: msg={{ xxx_var }}

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

Ansible:如何从另一个变量构造一个变量,然后获取它的值 的相关文章

  • 从上一个任务获取更改/失败的主机列表 |安西布尔

    All 示例 如果我有 20 个主机用于剧本并使用 Serial 10 运行它们 则以下 shell 命令一次在 10 个主机上运行 完成后 将调用处理程序任务 其中创建 dict dict 的任务不会提供字典输出 因此第二个任务 失败的主
  • 如果不满足某些条件,如何跳过ansible剧本中的所有其他剧本?

    我在下面的剧本中有多个剧本 如果不满足某些条件 我想忽略所有其他戏剧 因此 对于下面的示例 如果我在中找不到任何新文件Play1然后我不想执行Play2 and Play3根本没有 它应该跳过它 我怎样才能做到这一点 I have end
  • 如何从用户定义的 ansible.cfg 设置 ansible_config 变量

    我有一个目录结构 在其中保存我的剧本 如下所示 home monk Ansible work ansible cfg playbook dir 1 playbook 1 yml playbook dir 2 playbook 2 yml p
  • Ansible 权限问题

    我正在尝试将当前用户添加到系统中的某个组 然后执行需要该组权限的命令 我的剧本是这样的 name Add this user to RVM group sudo true user state present name vagrant ap
  • 在 Ansible 中检查已安装的 yum 包/rpm 版本并使用它的最佳方法

    我已经在 CentOS 7 上尝试使用 Ansible 2 0 0 2 我试图从已安装的 rpm yum 软件包中获取版本 但在运行脚本时遇到警告消息 安塞布尔脚本 name Get version of RPM shell yum lis
  • 使用 with_items 连接字符串并分配给 Ansible 中的变量

    启动 ec2 实例时 我需要将两个 2 IP 保存到 vars 文件中的变量中 以便稍后在部署期间使用 这就是我保存单个服务器 IP 的方式 name Save server public IP to vars file lineinfil
  • 如何在 jinja2 中缩进嵌套的 if/for 语句

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

    我对 Ansible 很陌生 有一个简单的问题来了解我的理解local action指示 这是否意味着该命令完全在本地执行 假设你有这样的东西 local action command which nginx register check
  • 有没有办法同时拥有加密和非加密的主机变量?

    如果我加密host vars 文件与ansible vault 除了清单文件中的主机变量之外 我似乎没有机会拥有未加密的主机变量 我错过了什么吗 事实证明 http docs ansible com ansible intro invent
  • 使用 lineinfile 和 blockinfile 编辑文件还是仅使用模板复制整个文件?

    我开始使用 Ansible 编写一个剧本 为我们的应用程序部署临时环境 我试图了解对文件应用更改的最佳实践是否是在控制计算机上本地更改它们 然后将它们传播到远程服务器 或者是否应该在剧本内操作文件 通过剧本操作文件在可读性和文档方面似乎更好
  • local_action:shell 连接文件时出错

    我的剧本中有这样的错误 为什么以及如何解决它 获取远程主机的更新列表 将列表连接到一个文件中 name Save update deb packs in file on ansible host copy content update de
  • 如何在 Ansible 中运行 MySQL 查询

    我需要编写一个 Ansible 脚本来在 MySQL 数据库中执行 SQL 查询 这是我尝试过的 你能指导一下吗 hosts localhost tasks name retrive data command mysql u root h
  • 所有 Ansible playbook 属性

    我刚刚开始使用 Ansible 在阅读了教程 Ansible 团队将其命名为 docs 我想查看可在剧本中使用的所有属性的完整列表 有人能够提供这样的清单吗 我唯一能通过谷歌搜索的是这个老例子 https gist github com m
  • Ansible:仅在存在时禁用服务

    有没有什么好的方法可以禁用和停止服务 但前提是它安装在服务器上 像这样的事情 service name item enabled no state stopped only if present yes with items avahi d
  • Ansible - 如何使用项目循环命令,直到注册的变量相等?

    我正在尝试查找文件在过去 15 秒内是否有任何写入操作 name Check File for Writes shell tail n 50 path to some file sha1sum loop 1 2 register file
  • 将 AnsibleUnsafeText 转换为 int

    假设 df 命令返回以下内容 john doe localhost df Filesystem 1K blocks Used Available Use Mounted on dev sda1 372607 170989 177862 50
  • 在 sudo 用户下应用角色

    是否可以在 Ansible 中应用 sudo 等特定角色 具体来说 这些是从 ansible galaxy 获取的角色 因此来源不在我的控制范围内 这个例子 https raymii org s tutorials Ansible Bett
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 如何使用ansible扩展Windows路径变量

    使用 win environment 可以向 Windows 主机添加 删除环境变量 但是要修改已经存在的变量 win environment 似乎没有用 因为您无法读取旧值来修改和更新变量 正确的 EDIT 从 Ansible 2 3 开
  • 有没有办法验证 Ansible Inventory 文件中组的主机数量?

    我的要求如下所示 我有一个 Ansible 库存文件 它根据如下所示的组件分为几个组 all node1 node2 node3 node4 webapp node3 node4 ui node1 如果条件失败 则有没有办法验证清单文件中组

随机推荐

  • React检测iframe的src的变化

    我有一个iframe我的组件中的元素 我需要以某种方式检测该 iframe 的 URL 何时发生变化 到目前为止我已经尝试过 Added onLoad回调 但这不会在我每次在 iframe 中重定向时触发 Used React useCal
  • 如何使用 Twilio 解决 java.lang.NoClassDefFoundError UserAgentConfig$Callbacks

    我正在使用 Twilio Client Android sdk 但在尝试运行它时失败并出现此错误 Caused by java lang NoClassDefFoundError Class Lcom twilio client impl
  • 如何在 PHP 的自定义函数中添加可选参数?

    例如 这是一个总结它的快速虚拟函数 function dummy func optional if isset optional optional World output Hello optional return output 但是 如
  • 处理 Android 5.0 Lollipop 中的媒体按钮

    在 API 21 之前 我使用的是这样的调用audioManager registerMediaButtonEventReceiver receiver 当用户按下耳机上的按钮时处理媒体按钮事件 从 API 21 开始 似乎MediaSes
  • 确定对象是否是数组的最佳方法是什么

    据我所知 有三种方法可以判断一个对象是否是数组 by isArray功能 如果已实现 Array isArray by toString Object prototype toString apply obj object Array an
  • C# - 将变量传递给 Matlab

    典型的谷歌搜索结果是空的 我呼吁你们的伟大思想 如何将变量从我正在编写的 C 类传递到 Matlab 我通过 NET addAssembly 函数与其交互 我应该在 C 代码中引用 dll 文件吗 如果是的话 它在哪里 是否有一些文档和示例
  • 访问 getSymbols 返回的奇数名称对象

    我正在使用雅虎下载数据quantmod gt getSymbols HNZ A TO 1 HNZ A TO Warning message In download file paste yahoo URL s Symbols name a
  • max_length、填充和截断参数在 HuggingFace 的 BertTokenizerFast.from_pretrained('bert-base-uncased') 中如何工作?

    我正在处理文本分类问题 我想使用 BERT 模型作为基础 然后使用密集层 我想知道这 3 个参数是如何工作的 例如 如果我有 3 个句子 My name is slim shade and I am an aspiring AI Engin
  • 如何将列表列表转换为数据框 - 不相同列表

    我有一个列表 其中每个元素都是命名列表 但元素在各处并不相同 我已阅读有关如何将列表列表转换为数据帧的解决方案here https stackoverflow com questions 4512465 what is the most e
  • 鼠标悬停时更改画布中的颜色线

    我在画布上有一些线条 我希望当鼠标悬停在该行上时 每行都会改变颜色 但我对此问题有一些问题 有没有JS库可以帮我解决这个问题 你能帮助我吗 谢谢 var canvas document getElementById myCanvas var
  • 使用 AsyncTask 填充 ListView

    这可能不是很优雅 但我想做的是连接到 Web 服务 获取 JSON 解析它 从中创建一个对象 将该对象添加到 ArrayList 然后使用该 ArrayList 来填充我的列表显示 我正在尝试使用 AsyncTask 来完成所有这一切 摘要
  • CSS3显示:表格,溢出-y:滚动不起作用

    我有一个需要垂直滚动的数据表 看来如果你的display值为table 您不能设置height or 最大高度 所以溢出 y 滚动什么也没做 带表格的 Codepen http codepen io anon pen MYZJdE fake
  • 使用pivot_longer整理数据集:将多列分成两列

    我大家 我目前正在学习 R 并尝试使用 tidyverse 包中的pivot longer 整理数据集 我有这个小事 title actor 1 actor 2 actor 3 actor 1 FB likes actor 2 FB lik
  • Eclipse 中的 XML 验证和自动完成

    在android SDK中 当我编辑android布局xml文件时 它可以进行验证和自动完成 这是如何运作的 如何使用我自己定义的 xml 格式使 eclipse 验证并自动完成 Eclipse 可用于编辑和验证 XML 文件 我在 Ecl
  • 如何延迟谷歌自动完成功能以节省信用

    正如你所知 每次我们输入谷歌地图自动完成功能都会触发 我想为此设置一个延迟函数 例如250毫秒 这样可以给用户更多的时间来输入并节省积分 我尝试添加 timeout 但看起来它对我不起作用 请您帮我看看这个好吗 提前致谢 网页
  • 可以跨域获取iframe的url吗?

    如果是跨域 iframe 如何在页面加载时获取 iframe 的当前 url 背景 我正在尝试在我的网站上启用 SSL 但是 我的用户需要能够通过 iframe 加载任何 url 如果他们尝试使用 http 协议加载 iframe 它将拒绝
  • 项目中不存在目标“/t:native_metrics”

    我想在我的项目上安装 newrelic 但我从控制台收到 node modules newrelic native metrics build bind ing sln metaproj error MSB4057 The target t
  • java网格包布局:避免中心对齐

    在我的 GUI 应用程序中 我有几个 JPanel 它们在程序运行期间的不同点被实例化 并且某些操作将导致其中之一显示在滚动窗格中 mViewport setViewportView currentPanel 问题是 我的面板是使用网格包布
  • Android 中 Imageview 的圆角

    我在线性布局中有一个文本视图和图像视图 Textview 位于顶部 imageview 位于底部 我使用下面的线条来实现线性布局的圆角 但 imageview 的角不是圆角的 我看到只有线性布局的顶角是圆角的 如何使 imageview 的
  • Ansible:如何从另一个变量构造一个变量,然后获取它的值

    这是我的问题 我需要使用一个变量 target host 然后将 host 附加到它的值以获取我需要其值的另一个变量名称 如果你看看我的剧本 任务 nbr 1 2 3 获取变量的值 但是 nbr 4 无法执行我所期望的操作 有没有其他方法可