使用 Ansible 停止可能不存在的服务

2024-02-24

我正在使用 Ansible2.6.1.

我试图确保某些服务没有在目标主机上运行。 问题是该服务可能在某些主机上根本不存在。如果是这种情况,Ansible 将因缺少服务而失败并出现错误。服务由Systemd.

使用服务模块:

  - name: Stop service
    service:
      name: '{{ target_service }}'
      state: stopped

因错误而失败Could not find the requested service SERVICE: host

尝试使用命令模块:

 - name: Stop service
   command: service {{ target_service }} stop

给出错误:Failed to stop SERVICE.service: Unit SERVICE.service not loaded.

我知道我可以使用ignore_errors: yes但它也可能隐藏真正的错误。

另一种解决方案是有两个任务。一个检查服务是否存在,另一个仅在第一个任务找到服务时运行,但感觉很复杂。

是否有更简单的方法来确保服务停止并避免在服务不存在时出现错误?


我正在使用以下步骤:

- name: Get the list of services
  service_facts:

- name: Stop service
  systemd:
    name: <service_name_here>
    state: stopped
  when: "'<service_name_here>.service' in services"

service_facts可以在收集事实阶段调用一次。

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

使用 Ansible 停止可能不存在的服务 的相关文章

  • 将整数变量传递给任务而不丢失整数类型

    我有一个我不拥有的任务 实际上是一个角色 但在这里使用任务是为了使示例更容易 它对变量进行一些操作 它假设变量是整数 我需要以某种方式向它传递一个变量并将其作为 int 传递 但我没有任何运气 这是我不拥有的任务的超级简化版本 frob y
  • 如何在 YAML 中使用 IF ELSE 和变量?

    我正在使用 Ansible Tower 的 YAML 文件 其中包含以下信息 name Package Deployment block name Update package package yum update cache True u
  • 如何防止 Ansible 对 JSON 重新排序?

    给定以下剧本 从随机数据中获取一些数据网络服务 http jsonplaceholder typicode com users name sorting json hosts localhost tasks name uri url htt
  • 获取 Ansible 控制机 IP 地址的最佳方法

    我正在使用 Ansible 和ufw在我的服务器上设置防火墙 作为ufw规则 我希望允许来自 Ansible 控制机的 SSH 但不允许来自其他任何地方 我的问题是 获取控制机本身的 IP 地址以便我可以将其放入规则中的最佳方法是什么 我知
  • 无法在守护进程模式下运行 Ansible

    我可以运行 Ansible 像守护进程一样管理我的主机吗 例如 我有时会更改我的剧本 但我不想手动运行 ansible playbook main yml 请不要建议 crontab 有一个特定的点 我不能在生产服务器上使用 crontab
  • 使用嵌套 delegate_to 将文件从一台远程服务器复制到另一台远程服务器

    作为用户 我想将文件从节点1复制到节点2 是否可以使用复制模块 delegate to 以下是我试图做的事情 Playbook 从节点 3 运行 Playbook Sample name Gather Facts for all hosts
  • 从上一个任务获取更改/失败的主机列表 |安西布尔

    All 示例 如果我有 20 个主机用于剧本并使用 Serial 10 运行它们 则以下 shell 命令一次在 10 个主机上运行 完成后 将调用处理程序任务 其中创建 dict dict 的任务不会提供字典输出 因此第二个任务 失败的主
  • Ansible 手册:错误! “command”不是 Play 的有效属性[重复]

    这个问题在这里已经有答案了 我只是想写一个基本的剧本 并不断收到下面的错误 尝试了很多东西但仍然无法做到正确 我知道这一定是语法问题 但不知道在哪里 这是我的代码 This playbook runs a basic DF command
  • Cygwin - 如何安装 ansible?

    如何使用 Cygwin 获取 安装 ansible 我尝试了以下步骤 但在第 5 条期间 运行时 python setup py 安装 步骤取自 取自https servercheck in blog running ansible wit
  • 使用 ansible SSH 到远程服务器

    我正在使用 ansible 来自动化一些任务 其中之一要求我ssh到服务器A 然后从A到B 然后从B到C 我似乎找不到任何方法来做到这一点 有什么建议么 鉴于您不使用 Paramiko 进行 ssh transport ssh https
  • Ansible 权限问题

    我正在尝试将当前用户添加到系统中的某个组 然后执行需要该组权限的命令 我的剧本是这样的 name Add this user to RVM group sudo true user state present name vagrant ap
  • 附加到 group_vars 中的 Ansible 字典而不使用 hash_behaviour = merge

    我想定义一个字典变量 各个主机组可以将自己的密钥添加到其中在group vars中 不使用set fact 例如 像这样的东西 group vars ftp servers yml important ports ftp 21 group
  • 在 Ansible 中检查已安装的 yum 包/rpm 版本并使用它的最佳方法

    我已经在 CentOS 7 上尝试使用 Ansible 2 0 0 2 我试图从已安装的 rpm yum 软件包中获取版本 但在运行脚本时遇到警告消息 安塞布尔脚本 name Get version of RPM shell yum lis
  • 如何在 jinja2 中缩进嵌套的 if/for 语句

    我有一个很长的 Jinja2 模板 其中有很多嵌套if for声明 很难读 我想缩进 位 使其更清晰 但是 如果我这样做 这些块的内容也会进一步缩进 我怎样才能缩进just the bits 我正在使用安塞布尔 重现步骤 template
  • Ansible git clone“权限被拒绝”但直接 git clone 工作

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

    我想将 ansible default ipv4 更改为指向 eth1 而不是 eth0 我可以在剧本中或通过 extra vars 选项来执行此操作吗 ansible 使用命令 https github com ansible ansib
  • 有没有办法同时拥有加密和非加密的主机变量?

    如果我加密host vars 文件与ansible vault 除了清单文件中的主机变量之外 我似乎没有机会拥有未加密的主机变量 我错过了什么吗 事实证明 http docs ansible com ansible intro invent
  • if else 在 ansible 打印语句中

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

    我想运行一个 ansible playbook 它会安装一个服务 如果自上次运行以来发生任何更改 或多或少是 ansible 处理程序的规范用例 则重新启动它 但我想要一个不同的并行性用于安装而不是重新启动 我想一次在所有主机上安装 但是
  • 在 Ansible 中使用模板模块附加文件

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

随机推荐

  • 通过 PHP 使用 HTTP POST 发送 XML 数据

    我需要发送此 XML
  • 在 Android studio 中使用 Jcenter 和 gradle

    编辑 弄清楚了 我实现了 JBaruch 对项目范围 build gradle 文件的 allprojects gt repositories 部分的建议 我正在编写一个依赖 IOIO 的项目 在我的项目上编译 IOIO 的库给我带来了麻烦
  • 如何将图像从服务器(api)存储到房间数据库

    我想将来自 api 的图像存储到房间数据库中 我从 api 接收数据和图像 当我处于在线模式时 图像是使用 api 提供的 url 加载的 但当离线时 图像应该以离线模式从数据库中存储和检索 我像这样加载图像 它加载图像 if data d
  • Vaadin - 布局调整重叠大小

    当尝试调整浏览器大小时 我面临与我的项目重叠的问题 我尝试了很多不同的变体来使其发挥作用 但结果仍然不可接受 Before resizing A B and C包含在垂直布局 https vaadin com api com vaadin
  • 如何配置 sbt test / ScalaTest 仅显示失败?

    有没有办法截断测试结果 仅在单元测试失败时才显示单元测试的结果文本 我正在开发一个具有 850 个单元测试的 Scala 项目 成功的单元测试的绿色文本使得很难只关注失败的情况 我正在谈论的示例 info should have color
  • 编辑预先存在的 cab 文件/安装程序文件

    我目前正在尝试制作 CD 的下载 安装文件 但我以前从未这样做过或编写过任何类型的编码 所以我有点不知所措 当我们上次创建安装程序包时 我尚未受雇 我们使用了 InstalShield 但那是几十年前的事了 我们无法承受 500 美元以上的
  • 从computeDigest(algorithm, value) byte[] 获取字符串表示形式

    Google App Script 函数computeDigest 返回签名的字节数组 如何获取摘要的字符串表示形式 我已经尝试过 bin2String 函数 function sign var signature Utilities co
  • 在 Android 上阻止传入/传出短信

    有谁知道通过代码阻止传入 传出短信的可靠方法 如果收到实际的短信也没关系 但我想阻止收到该短信的任何通知 此外 不应允许用户发送 或者最好是键入 SMS 消息 那可能吗 Thanks 您无法阻止外发短信 这是我用来阻止传入文本的方法 短信接
  • 如何响应 AngularJS 指令中复选框的点击?

    我有一个 AngularJS指示 http docs angularjs org guide directive在以下模板中呈现实体集合 table class table thead tr th th tr thead table
  • 如何更改 CPack 中的包目标文件夹?

    我有一个多模块CMake具有根的项目CMakeLists txt与多个添加子目录 macros 据我了解 CPack CMake 的默认设置是在项目根文件夹中创建包 其中 rootCMakeLists txt居住 我想创建一个单独的inst
  • 为什么 PDWord 不是 ^DWORD?

    这个节目 APPTYPE CONSOLE TYPEDADDRESS ON uses Winapi Windows procedure Foo P PDWORD begin end procedure Bar var dw DWORD beg
  • 如何设置带有红色边框的必填编辑字段?

    我想要一些字段 当它们不被填充时 它们将是红色的并且需要填充 在帖子完成之前 这是我想要实现的目标的屏幕截图 我会添加一个TShape 它可以在编辑框周围画一条红线 如果您希望红色边框替换正常的 TEdit 边框 您可以修改编辑控件的属性
  • 部分和模板的复杂嵌套

    我的问题涉及如何处理复杂的嵌套模板 也叫partials 在 AngularJS 应用程序中 描述我的情况的最佳方式是用我创建的图像 正如您所看到的 这有可能成为一个相当复杂的应用程序 具有大量嵌套模型 该应用程序是单页的 因此它加载一个索
  • 开发过程中如何避免“死亡交换”?

    可能每个人在开发过程中都至少遇到过一次这个问题 while some condition here that somehow never will be false yourvector push back new SomeType 正如您
  • 滑动即可更改视图

    下面的代码容易写吗 我有一个表格视图 当用户选择一个单元格时 会加载详细视图 我希望允许用户通过向左和向右滑动来导航代表表格视图中项目的项目 详细视图 其工作方式与例如iPhone 的主屏幕 例如 滑动时 一页移出屏幕 然后出现下一页 我已
  • 解析 Boost program_options 中配置文件的未注册选项?

    使用命令行选项 我可以执行以下操作 po variables map vm auto parsedOptions po command line parser argc argv options optionsDescription1 al
  • 导入 React、{Component} 而不仅仅是 React 有什么好处?

    写作的最大好处是什么 import React Component from react class Link extends Component 代替 import React from react class Link extends
  • 在 Linux Mint 17.3 上安装 python 3.5

    我对 Linux 很陌生 想使用 python 因为它是我在学校学习的语言 我在网上查了一下我当前的版本是 2 7 这对我来说没有好处 因为我正在学习 python 3 但是 我听说更改系统 python 版本可能会非常糟糕 所以我不知道该
  • 如何与 UIActivityViewController 共享文本文件

    我尝试共享文件内容的 NSData 对象 活动视图中出现邮件选项 然后显示邮件撰写控制器 但没有附件 我尝试过与文件路径共享 NSUrl 但在这种情况下 当活动视图出现时 它会占据整个屏幕 但除了底部的 取消 按钮之外 它是空白的 诡异的
  • 使用 Ansible 停止可能不存在的服务

    我正在使用 Ansible2 6 1 我试图确保某些服务没有在目标主机上运行 问题是该服务可能在某些主机上根本不存在 如果是这种情况 Ansible 将因缺少服务而失败并出现错误 服务由Systemd 使用服务模块 name Stop se