字符串不匹配时的 Ansible 条件

2023-12-29

我正在尝试编写一个 Ansible 剧本,仅在 Nginx 尚未存在且当前版本不存在时才编译 Nginx。然而它每次都会编译,这是不可取的。

这就是我所拥有的:

- shell: /usr/local/nginx/sbin/nginx -v 2>&1
  register: nginxVersion
- debug:
  var=nginxVersion

- name: install nginx
  shell: /var/local/ansible/nginx/makenginx.sh
  when: "not nginxVersion == 'nginx version: nginx/1.8.0'"
  become: yes

除了每次运行 shell 脚本来编译 Nginx 之外,该脚本都可以正常工作。 nginxVersion 的调试输出为:

ok: [server] => {
    "var": {
        "nginxVersion": {
            "changed": true,
            "cmd": "/usr/local/nginx/sbin/nginx -v 2>&1",
            "delta": "0:00:00.003752",
            "end": "2015-09-25 16:45:26.500409",
            "invocation": {
                "module_args": "/usr/local/nginx/sbin/nginx -v 2>&1",
                "module_name": "shell"
            },
            "rc": 0,
            "start": "2015-09-25 16:45:26.496657",
            "stderr": "",
            "stdout": "nginx version: nginx/1.8.0",
            "stdout_lines": [
                "nginx version: nginx/1.8.0"
            ],
            "warnings": []
        }
    }
}

根据我在正确路线上的文档,我错过了什么简单的技巧?


Try:

when: nginxVersion.stdout != 'nginx version: nginx/1.8.0'

or

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

字符串不匹配时的 Ansible 条件 的相关文章

  • Ansible 和硬件检查

    我必须使用 ansible 检查 Linux 机器上的不同硬件和配置元素 我完全不确定如何做到这一点 RAM 磁盘空间 DNS CPU 我知道我几乎可以找到我想要的所有事实都在 ansible 中 但我不明白如何使用它 例如 我必须检查 R
  • ansible 用户模块总是显示已更改

    我正在努力正确使用 ansible 的用户模块 问题是每次我运行我的剧本时 我创建的用户always显示为已更改 即使我已经创建了它们 我在这里发现其他人也有同样的问题 https github com ansible ansible is
  • Ansible git clone“权限被拒绝”但直接 git clone 工作

    我在使用 Ansible 时遇到了一个令人不安的问题 我使用当前主机的 ssh 密钥在我的环境中设置 git 克隆 name Add user Public Key copy src Users alexgrs ssh id rsa pub
  • 在ansible中合并字典

    我目前正在构建一个使用 ansible 安装 PHP 的角色 并且在合并字典时遇到一些困难 我尝试了多种方法来做到这一点 但我无法让它像我想要的那样工作 A vars file my default values key value my
  • 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 测试变量以什么开头

    我需要能够安装 MySQL 库 Python 有 1 个用于 v2 的包和另一个用于 v3 的包 我需要能够告诉 Ansible 要安装哪个包 name Ensure MySQL python is installed pip name M
  • Ansible local_action 指令

    我对 Ansible 很陌生 有一个简单的问题来了解我的理解local action指示 这是否意味着该命令完全在本地执行 假设你有这样的东西 local action command which nginx register check
  • 使用 lineinfile 和 blockinfile 编辑文件还是仅使用模板复制整个文件?

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

    所以我有一个 ansible 剧本 它使用 Jinja2 模板来创建日志文件 每次我运行剧本时 它都会从customers yml中提取客户信息 并将完整的模板输出到 stunnel conf 文件中 该模板工作正常 但我试图找到一种方法来
  • 如何在 Jinja 中过滤字典?

    我有一个包字典 包名称是key和一些细节的字典是value php7 1 readline latest 7 1 9 1 ubuntu14 04 1 deb sury org 1 origins ppa launchpad net vers
  • 在特定主机组上运行 ansible

    我正在尝试使用以下命令运行 ansible ansible playbook provision yml l webserver 我的主机文件包含以下主机组 webclient 172 29 4 75 webserver 172 29 4
  • Ansible:仅在存在时禁用服务

    有没有什么好的方法可以禁用和停止服务 但前提是它安装在服务器上 像这样的事情 service name item enabled no state stopped only if present yes with items avahi d
  • 如何使用 Vagrant 自动安装 Ansible Galaxy 角色?

    仅使用一本剧本 则不可能让 Ansible 自动安装依赖角色 至少按照这个所以线程 https stackoverflow com questions 25230376 how to automatically install ansibl
  • Ansible - 如何使用项目循环命令,直到注册的变量相等?

    我正在尝试查找文件在过去 15 秒内是否有任何写入操作 name Check File for Writes shell tail n 50 path to some file sha1sum loop 1 2 register file
  • 如何在ansible清单文件中设置host_key_checking = false?

    我想用ansible playbook命令而不是 vagrant provision 然而设置host key checking false in the hosts文件似乎不起作用 hosts file vagrant ansible s
  • Ansible:如何为Solaris设置全局路径

    我正在编写 Ansible 剧本来在 Solaris 服务器上设置和安装我们的应用程序 问题是我需要执行的 bash 脚本都假设某个目录位于 PATH 上 即 data bin 如果 Ansible 没有忽略所有这些 这通常不会成为问题 p
  • AnsibleError:模板化字符串时出现模板错误:预期标记“:”,得到“}”

    准备模板时出现错误 谁能告诉你如何修复它 如有必要 还可以编辑变量 vars All ountry name1 name2 name1 region1a region1b name2 region2a region2b Code for c
  • Ansible - 当至少一项在循环中失败时跳过任务

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

    我想创建两本剧本 一本用于停止环境 另一本用于启动它 环境的一部分是 RabbitMQ 集群 对于其停止 启动顺序非常重要 特别是最后一个停止的节点需要是第一个启动的节点 我想知道是否有一种方法可以指定针对组运行任务的相反顺序 这样我就可以

随机推荐

  • 使用 javascript 分割字符串

    我有一个像 a b c e 这样的字符串 注意前面多了一个分号e 我想要将字符串拆分成a b c e 但它会像这样分裂a b c e 我的代码是 var new arr str split 我在这里可以做什么才能得到我想要的结果 Regar
  • 通过 Google Cloud Storage 和负载均衡器提供 React 应用程序服务,将任何 url 映射到索引?

    我正在使用 Google Cloud Storage 和 Loadbalancer 设置 React 应用程序前端 在构建过程中 index html 和 javascript 文件被上传到云存储中 负载均衡器指向后端存储桶 如果我转到 h
  • 理解 NumPy 的卷积

    计算简单移动平均线时 numpy convolve似乎可以完成这项工作 问题 使用时是如何计算的np convolve values weights valid 当文档提到convolution product is only given
  • 如何在Python中抑制控制台输出?

    我正在使用 Pygame SDL 的操纵杆模块从游戏手柄获取输入 每次我打电话给它get hat 方法将其打印到控制台 这是有问题的 因为我使用控制台来帮助我调试 现在它被淹没了SDL JoystickGetHat value 0 每秒60
  • 在 Glassfish v3 中,Servlet 请求无明显原因地按顺序执行

    我正在使用 Glassfish 3 Web 配置文件 无法让 http 工作线程在 servlet 上同时执行请求 这就是我观察问题的方式 我制作了一个非常简单的 servlet 它将当前线程名称写入标准输出并休眠 10 秒 protect
  • 信号处理程序问题

    我们一直在讨论 C Unix 中的信号 教授在课堂上举了一个让我困惑的例子 在下面的 main 方法中 使用包含的参数调用信号函数 main signal SIGALRM handler install handler handler 是一
  • get()在Guava的缓存中是线程安全的操作吗?

    我发现使用 CacheLoader 操作的 put 和 get 在底层使用了可重入锁 但为什么 getIfPresent 操作没有实现这一点 get 由 getIfPresent 使用 Nullable V get Object key i
  • setalloccol(x) 中的错误:详细必须为 TRUE 或 FALSE --- 未知错误源

    我在 Rstudio 中遇到了一个非常奇怪的问题 我不知道如何修复它 因为我不知道哪个函数 包导致了它 我昨晚运行了整个代码 它运行得很好 但现在我不断遇到错误Error in setalloccol x verbose must be T
  • 如何从“MySQL 创建表”查询字符串中获取列名?

    我想用 PHP 编写一个脚本 以字符串形式获取 MySQL 创建表 查询 并将列名及其数据类型存储在数组中 例如 输入字符串 CREATE TABLE test col1 INT 10 NOT NULL col2 VARCHAR 50 NO
  • 无模式 JDialog 不显示内容

    Java SE 6 我正在尝试创建一个弹出对话框 在我的程序执行一些耗时的工作时显示 请稍候 消息 为此 我选择使用无模式 JDialog 以便程序在 JDialog 可见时继续运行并正常工作 如果您使用模态 JDialog 则程序将暂停
  • Windows 上的 PHP 诅咒

    PHP 中是否有与 ncurses 相当的 Windows 版本 我创建了一个 CLI 脚本 希望以一种很好的方式显示各种统计信息 当前处理的记录 完成百分比等 而不向 cmd exe 窗口输出负载和大量文本 ncurses 扩展不适用于
  • 计算整数的持久数

    我正在尝试编写一个执行以下操作的代码 将整数的数字相乘并继续该过程给出 乘积序列总是得出令人惊讶的结果 一位数 例如 715 gt 35 gt 15 gt 5 88 gt 64 gt 24 gt 8 27 gt 14 gt 4 达到个位数所
  • 使用 map() 估计多个“lm”模型并在一个表中返回输出

    我需要在同一数据集上估计多个线性模型 并将回归结果全部放入一张表中 对于可重现的示例 这里是使用的简化mtcars formula 1 mpg disp formula 2 mpg log disp formula 3 mpg disp h
  • 我可以使用 System.Linq.Expressions 动态生成异步方法吗?

    我知道编译器无法将异步 lambda 表达式转换为表达式树 但是是否可以手动生成表达式树 var expr Expression Lambda
  • 模拟实体框架模型?

    是否可以模拟 EF 模型 以便我可以测试使用模型类的代码 而无需删除散布在我的项目中的 LINQ to Entities 代码 或者是否需要建立一个测试数据库来让模型命中 您可以将 LINQ 代码包装在数据访问对象 http en wiki
  • 如何在批处理脚本中生成日期前四天的日期? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在批处理脚本中生成日期前四天的日期 我检查了可用的解决方案 但它们看起来很复杂 任何帮助将不胜感激 我强烈同意 JosefZ 日期
  • 从函数返回 JSX

    我有一个组件需要检查多个选项并根据这些选项返回 因此 我创建了一个外部函数 在我的组件返回语句中调用该函数来确定将返回的格式 render const policy this props let deployment policy Depl
  • 如何更改 silverlight 5 中只读文本框的背景颜色?

    我想更改只读文本框的颜色 可以将默认颜色更改为白色 颜色 和文本框为
  • 如何正确通知 MediaScanner 有关文件夹的信息,即使在 Nexus/Kitkat 设备上也是如此?

    背景 我正在制作一个应用程序 将一些图像从互联网下载到定义为的特定文件夹中 final String pathToPutFiles Environment getExternalStoragePublicDirectory Environm
  • 字符串不匹配时的 Ansible 条件

    我正在尝试编写一个 Ansible 剧本 仅在 Nginx 尚未存在且当前版本不存在时才编译 Nginx 然而它每次都会编译 这是不可取的 这就是我所拥有的 shell usr local nginx sbin nginx v 2 gt 1