当变量未定义时跳过 Ansible 任务

2023-12-03

我在剧本中有以下任务:

- name: task xyz  
  copy:  
    src="{{ item }}"  
    dest="/tmp/{{ item }}"  
  with_items: "{{ y.z }}"  
  when: y.z is defined  

y.z未定义,因此我希望跳过该任务。相反,我收到:

FAILED! => {"failed": true, "msg": "'dict object' has no attribute 'z'"

我已经发现:当变量在ansible中未定义时如何运行任务?但看来我就是这么做的。我在这里做错了什么?


这里的问题是with_items之前评估过when。实际上在真实场景中你放置item in the when有条件的。看:循环和条件.

此任务将适合您:

- name: task xyz
  copy:  
    src: "{{ item }}"  
    dest: "/tmp/{{ item }}"  
  with_items: "{{ (y|default([])).z | default([]) }}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当变量未定义时跳过 Ansible 任务 的相关文章

  • 如何在 playbook 中使用 Ansible Tower 登录凭据?

    是否可以使用我用来直接在剧本中登录 Ansible Tower 的凭据 是的 您可以通过使用 保存您的凭据 来完成此操作安西布尔塔 Ansible Tower 上的凭证类型 从 Ansible Tower UI 中 转至 Credentia
  • Ansible Expect 模块无法匹配字符串/正则表达式脚本问题

    我正在尝试通过 Ansible 在 Vagrant 机器中自动安装脚本 我尝试了很多方法在网络上寻找解决方案 但文档和示例非常薄弱 我试图安装的脚本提示了我试图以编程方式回答的问题Ansible 期望模块 Ansible 任务 名称 运行
  • Ansible with_items 与循环

    使用有什么区别带有项目 https docs ansible com ansible 2 4 playbooks loops html vs loops http docs ansible com ansible latest user g
  • ansible安装node.js版本6

    要安装 Node 6 x 版本 请执行以下命令 curl sL https deb nodesource com setup 6 x sudo E bash sudo apt get install y nodejs 现在我到底该如何在an
  • 奇怪的 bash 脚本行为 - 生成的命令在复制粘贴时有效,但在脚本中无效

    出于安全原因 我编写了一个简短的 bash 脚本来包装 ansible playbook 命令 这并不复杂 而且大部分脚本在这里都是无关紧要的 最后 我将脚本参数生成的变量中的 ansible 命令放在一起 如下所示 ansible pla
  • 在 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
  • 使用 Ansible 配置 EC2 实例时遇到问题

    我对如何使用 Ansible 启动 EC2 实例感到非常困惑 我正在尝试使用 ec2 py 库存脚本 我不确定应该使用哪一个 因为 Ansible 安装了三个 ansible lib ansible module utils ec2 py
  • 如何在 jinja2 中缩进嵌套的 if/for 语句

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

    我正在努力正确使用 ansible 的用户模块 问题是每次我运行我的剧本时 我创建的用户always显示为已更改 即使我已经创建了它们 我在这里发现其他人也有同样的问题 https github com ansible ansible is
  • Ansible 无法运行任何命令或 shell

    我在 RPi 上运行任何命令或 shell 时遇到问题 当我使用以下代码时 name Example command ansible builtin command cmd cat etc motd 我收到此错误 Unsupported p
  • Ansible bitbucket 克隆存储库配置 ssh 错误

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

    我有一个正在循环的列表 问题是它给出了一个奇怪的顺序 param yml 文件 my list a val1 b val2 c val3 d val3 这是我的简单调试循环 name debug debug msg item loop my
  • 所有 Ansible playbook 属性

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

    我正在尝试使用以下命令运行 ansible ansible playbook provision yml l webserver 我的主机文件包含以下主机组 webclient 172 29 4 75 webserver 172 29 4
  • 如何从 Ansible 模块获取当前主机名?

    我正在开发自定义 Ansible 模块来控制 Vagrant 控制多个 VM 服务器上的多个 VM 节点 遵循指南https docs ansible com ansible latest dev guide developing modu
  • Ansible - 如何使用项目循环命令,直到注册的变量相等?

    我正在尝试查找文件在过去 15 秒内是否有任何写入操作 name Check File for Writes shell tail n 50 path to some file sha1sum loop 1 2 register file
  • 如何使用ansible运行询问用户输入的脚本?

    我想使用 ansible 运行 shell 脚本 但 shell 脚本需要用户输入才能成功执行 例如 我的 shell 脚本询问唯一的 idossec agent 通过ansible我可以预定义我的unique id user input
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • Ansible:如何为Solaris设置全局路径

    我正在编写 Ansible 剧本来在 Solaris 服务器上设置和安装我们的应用程序 问题是我需要执行的 bash 脚本都假设某个目录位于 PATH 上 即 data bin 如果 Ansible 没有忽略所有这些 这通常不会成为问题 p

随机推荐

  • groovy++ 发生了什么? [关闭]

    Closed 这个问题是无关 目前不接受答案 我刚刚偶然发现了 groovy 发现它非常有趣 不幸的是 它似乎没有进一步发展 根据 github 的说法 最后一次提交是一年多前 邮件列表完全不活跃 最后一条消息是在四月份返回的 最近没有这方
  • 如何从 XML 文档中删除所有文本

    如何删除所有文本 但保持结构完整 例如
  • 清除MySQL查询缓存而不重新启动服务器

    有什么办法可以clear mysql 查询缓存无需重新启动 mySQL 服务器 我相信你可以用 RESET QUERY CACHE 如果您运行的用户具有重新加载权限 或者 您可以通过以下方式对查询缓存进行碎片整理 FLUSH QUERY C
  • MySQL - 来自另一个表的总和

    我想运行一个包含另一个表中的总和的 select 语句 我知道我可能需要设置一个连接 但我不知道如何处理它 我想选择一个帐户列表 然后获取它们的余额 来自另一个表的总和 这是我一直以来的想法 但显然它是不正确的 SELECT account
  • 如何从 Android 应用程序将 db 文件上传到 google 驱动器?

    我想将数据库文件从我的应用程序上传到谷歌驱动器 我可以在谷歌驱动器中创建一个文件夹 但我不知道如何上传数据库文件 这是我的代码 import java io BufferedInputStream import java io Buffer
  • 使用 Gatsbyjs 包含本地 JS 和 CSS 文件

    我对这个完全陌生gatsbyjs生态系统 同时我正在学习一些reactjs 我最近购买了一个 html 模板 并尝试将其用作 UIgatsbyjs应用 该模板有很多 css 和 js 无论是专有的还是定制的 这意味着没有插件gatsbyjs
  • 添加对 Jtree 的拖放支持

    我想为我的 JTree 应用程序添加拖放支持 我创建了一个自定义的 DefaultMutableTreeNode 子类 有一个默认的 TreeCellRenderer 我需要添加哪些内容以及在哪里添加 最简单的方法是1 调用tree set
  • UIWebView 没有释放内存

    我在尝试恢复分配给 a 的内存时遇到了一些真正的麻烦UIWebView在我的应用程序中 我本质上是创造并呈现UIWebView暂时为用户单独ViewController 然后删除所有引用并弹出ViewController从堆栈中 尽管做了所
  • 如何使用 Lambda 函数对 Alexa Skill 应用程序进行异步 API 调用?

    我想从 Lambda 函数调用 api 我的处理程序由包含两个必需插槽的意图触发 因此我事先不知道我是否会退货Dialog Delegate指令或我对 api 请求的响应 在调用意图处理程序时 我如何承诺这些返回值 这是我的处理程序 con
  • 更新过期的 iO​​S MDM 配置文件

    因此 我设置了 SCEP 服务器来生成 iOS 身份证书 该证书仅在短时间内有效 当它过期时 配置文件会显示 此配置文件已过期 请更新此配置文件以获取更新版本 并显示 更新配置文件 按钮 然而 单击此按钮只会告诉我 无法更新配置文件 请联系
  • 查找非零元素的索引并按值分组

    我用 python 编写了一段代码 它接受 numpy 矩阵作为输入 并返回按相应值分组的索引列表 即 输出 3 返回值为 3 的所有索引 然而 我缺乏编写矢量化代码的知识 不得不使用 ndenumerate 来完成 这个操作只花了大约9秒
  • this.href 与 $(this).attr('href')

    读完这篇文章后net tutsplus com tutorials javascript ajax 14 helpful jquery tricks notes and best practices 我得出的结论是使用这个 href更有效率
  • Google 文档的 Apps 脚本 findText()

    我正在将正则表达式搜索应用于谷歌文档带有一些 Markdown 代码块刻度 的文本 在我的文档上运行下面的代码将返回空结果 var codeBlockRegEx 3 s 3 RegEx to find lazily all text bet
  • 如何使用 build-number 插件在 Maven 中显示 SVN 版本

    如何使用内部版本号插件显示 svn 版本和时间戳 目前我有以下内容
  • iPhone将彩色图像转换为2位图像(黑白)

    我需要帮助将彩色图像转换为 黑白 而不是灰度 我如何使用 iPhone SDK 和 Core Graphics 来做到这一点 因为我相信这是可能的 这是可能的 我之前尝试过两条路径 转换为灰度 然后逐像素转换为黑白 问题是我在透明图像上没有
  • 我应该绑定什么数据类型作为查询参数以与 Oracle ODBC 中的 NUMBER(15) 列一起使用?

    我刚刚被SO问题中描述的问题所困扰绑定 int64 SQL BIGINT 作为查询参数会导致在 Oracle 10g ODBC 中执行期间出错 我正在使用 ODBC 2 将 C C 应用程序从 SQL Server 移植到 Oracle 对
  • 从函数返回多个值

    UPDATE 这是 WIP 功能 我现在的疑问是 如何调用该函数 如
  • 实体框架在克隆后附加异常

    在尝试了几种拥有体面机制的选项之后 该机制允许使用 ObservableCollections 并可以选择使用编辑窗口和绑定动态更新它们 而无需在对绑定控件进行更改时更新全局集合 到目前为止 最好的解决方案似乎是be 克隆实体 分离旧实体
  • 为什么我在尝试访问没有任何条款的taxonomy.php 页面时收到 404 错误(Wordpress 看不到分类页面)

    我正在尝试创建分类页面 因此我使用分类法taxonomy nowe php 创建了分类法 但我的 WP 看不到该页面 或者我弄乱了重写 URL 有人可以检查我的代码并看看我是否做错了什么 我通过保存平原来刷新永久链接 然后返回到帖子名称永久
  • 当变量未定义时跳过 Ansible 任务

    我在剧本中有以下任务 name task xyz copy src item dest tmp item with items y z when y z is defined y z未定义 因此我希望跳过该任务 相反 我收到 FAILED