运行 ansible playbook 时如何缩小范围?

2024-02-17

我有一个剧本需要花费很多时间来执行,部分原因是它必须在很多节点上运行(我在 ansible 检查所有节点的状态上浪费了时间),并且我需要做一些中间某个地方发生了变化。

缩小剧本范围的最佳方式是什么?我考虑过隔离所需的更改和/或仅在单个节点上运行修改后的部分?


这是什么tags http://docs.ansible.com/ansible/playbooks_tags.html是给。

您可以使用任意标签组合来标记任何任务,然后指定要运行的标签组合(或者,使用--skip-tags)然后将只运行那些指定的任务。

因此,示例剧本可能如下所示:

- hosts: all
  tasks:
    - name: copy foo
      copy:
        src:  path/to/foo
        dest: path/to/foo
      tags:
        - copy_foo
        - copy
        - foo

    - name: copy bar
      copy:
        src:  path/to/bar
        dest: path/to/bar
      tags:
        - copy_bar
        - copy
        - bar

    - name: restart foo
      service:
        name:  foo
        state: restarted
      tags:
        - restart_foo
        - restart
        - foo

    - name: restart bar
      service:
        name:  bar
        state: restarted
      tags:
        - restart_bar
        - restart
        - bar

然后我可以只运行“restart foo”任务ansible-playbook -i path/to/hosts playbook.yml --tags "restart_foo"。或者,我可以运行所有与 bar 相关的标签,并使用以下任意组合重新启动 foo (但不复制 foo):

  • ansible-playbook -i path/to/hosts playbook.yml --tags "bar,restart_foo"
  • ansible-playbook -i path/to/hosts playbook.yml --tags "restart,copy_bar"
  • ansible-playbook -i path/to/hosts playbook.yml --skip-tags "copy_foo"

如果您想改为(或作为组合)限制运行游戏的节点,那么您可以使用--limit http://docs.ansible.com/ansible/playbooks_best_practices.html#top-level-playbooks-are-separated-by-role选项。因此,如果您想将游戏限制为仅网络服务器,那么您可以使用以下命令运行它ansible-playbook -i path/to/hosts playbook.yml --limit webservers甚至将其限制为单个特定主机ansible-playbook -i path/to/hosts playbook.yml --limit web.example.org

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

运行 ansible playbook 时如何缩小范围? 的相关文章

  • 反向运行 Ansible 循环

    我正在编写一本 ansible playbook 在一次 play 中 我尝试使用我自己的模块 NodeModule 使用 UUID 删除一些节点 所有节点是一个包含节点 UUID 的列表 name Remove OSNs NodeModu
  • 具有多个 SSH 密钥对的 Ansible

    我是 Ansible 的新手 我能够对其进行测试并且其工作正常 符合我的测试要求 为了在管理节点和客户端节点之间建立连接 我使用已经创建的 ssh 密钥对 如何使用具有不同 SSH 密钥对的另一个节点 作为参考 我正在考虑 3 个具有不同密
  • Ansible add_host 不起作用,它正在跳过主机

    我正在使用 Ansible 创建一个新的 EC2 实例并尝试在其上安装一些软件包 问题是我正在向主机组添加新主机 但我在另一个游戏中看不到该主机组 当到达 配置 EC2 实例 时 它会显示 PLAY 配置EC2实例 跳过 没有匹配的主机 这
  • Ansible、瞻博网络 CLI 命令。超时错误?

    我正在尝试将我用 Python 编写的自动化脚本传输到 ansible 公司请求 但我以前从未使用过 ansible 我已经尝试过 wait for 但我也没有让它发挥作用 在脚本中 我可以设置 dev timeout None 或我需要的
  • ssl:身份验证方法 ssl 需要密码

    在尝试通过 Ansible 连接到 Windows 虚拟机时 我遇到了以下问题 TASK setup lt 10 xx xx xx gt ESTABLISH WINRM CONNECTION FOR USER winad admin on
  • Ansible:shell 脚本输出始终为空

    我试图将 Linux shell 的输出插入到变量中 但由于某种原因 该变量始终为空 这是 Ansible 代码 name Check PHP version shell php v 2 gt dev null awk print 2 ex
  • Ansible with_items 与循环

    使用有什么区别带有项目 https docs ansible com ansible 2 4 playbooks loops html vs loops http docs ansible com ansible latest user g
  • 无法在守护进程模式下运行 Ansible

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

    我每次都会收到此错误 但仅在尝试从 Ansible Tower 上传到 Artifactory 时出现在特定文件上 这些文件都是在清单主机上创建的Oracle Collection Tool 然后在上传到 Artifactory 之前获取到
  • Ansible 手册:错误! “command”不是 Play 的有效属性[重复]

    这个问题在这里已经有答案了 我只是想写一个基本的剧本 并不断收到下面的错误 尝试了很多东西但仍然无法做到正确 我知道这一定是语法问题 但不知道在哪里 这是我的代码 This playbook runs a basic DF command
  • 带有 cacert 选项的 Ansible URI 模块

    我正在尝试做相当于 curl X POST data
  • 奇怪的 bash 脚本行为 - 生成的命令在复制粘贴时有效,但在脚本中无效

    出于安全原因 我编写了一个简短的 bash 脚本来包装 ansible playbook 命令 这并不复杂 而且大部分脚本在这里都是无关紧要的 最后 我将脚本参数生成的变量中的 ansible 命令放在一起 如下所示 ansible pla
  • 创建一个能够从容器注册表中提取的 Docker 就绪计算引擎

    我们使用 terraform 设置 GCE 实例 然后使用 ansible playbooks 来配置它们并将我们的服务转移到机器上 我正在我们的组织中运行一个项目 该项目需要从另一个项目中提取 Docker 映像 这些图像托管在另一个项目
  • 使用 Ansible 配置 EC2 实例时遇到问题

    我对如何使用 Ansible 启动 EC2 实例感到非常困惑 我正在尝试使用 ec2 py 库存脚本 我不确定应该使用哪一个 因为 Ansible 安装了三个 ansible lib ansible module utils ec2 py
  • 如何配置 Ansible 跳过两个堡垒主机?

    我想编写一个 Ansible 剧本 使用 Ansible 2 7 5 它将在到达目标服务器之前跳过两个主机来执行诸如安装 docker 和 python 等操作 我能够让 Ansible 通过一台主机跳转到server1通过将其添加到我的h
  • 如何读取/理解目标主机上的ansible日志(由syslog编写)

    当你在某个主机上执行 ansible 时 它 会写入该主机上的 syslog 如下所示 Dec 1 15 00 22 run tools python ansible
  • 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 'Docker login' 和 _json_key Docker 登录到 GCE

    我正在尝试编写一个 ansible 角色 首先执行以下操作docker login从容器注册表中提取映像之前 将其复制到 GCE 实例 由于提到的问题 我需要这样做here https stackoverflow com questions
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K

随机推荐

  • 使用两个数据框列应用 seq.Date [重复]

    这个问题在这里已经有答案了 我尝试使用不同的答案扩展数据框中的序列 https stackoverflow com questions 11494511 expanding a sequence in a data frame到我的数据框
  • UINT32_C 和 uint32_t 之间的区别

    据我所知后缀t in uint32 t denote t类型名称 但我想知道是什么C in UINT32 C有何不同 UINT32 C是一个定义整型常量的宏uint least32 t 例如 UINT32 C 123 Might expan
  • 使用 Python 的 stdlib 查找本地 IP 地址

    如何在Python平台中独立且仅使用标准库找到本地IP地址 即192 168 x x或10 0 x x 我刚刚发现这个 但看起来有点黑客 但是他们说在 nix 上尝试过 我在 Windows 上尝试过 它有效 import socket s
  • ASP.NET MVC 剃刀视图,发布到与原始模型绑定不同的模型?

    好吧 我在项目中有一个组控制器和视图 其中模型绑定是 GroupViewModel 但群组页面比较复杂 用户可以提出讨论话题 在此组视图页面上 我有允许用户发布主题 回复的表单 这些表单使用的模型可以是 TopicViewModel 或 R
  • 如何控制jquery动画速度

    我正在使用 jquery 为 div 制作动画 我想控制移动的速度 我玩了很多这个 但我希望有人能告诉我如何控制速度 这是代码示例 document ready function block css left 617px top 300px
  • 如何单独渲染媒体库项目?

    如何使用 Sitecore 控件在子布局中渲染媒体库项目图像 对于具有 图像 字段的普通内容项来说 这是小菜一碟 只需使用sc Image or FieldRenderer控制 但我有这样的事情
  • 禁止通过构造函数将右值绑定到成员 const 引用

    我正在研究一个矩阵视图类 其构造函数将矩阵作为参数并将其绑定到const参考会员 我非常希望避免绑定右值 因为它们不通过构造函数参数绑定 并且我们最终会得到一个悬空引用 我想出了以下内容 简化的代码 struct Foo class X c
  • MySQL CASE WHEN THEN 空 case 值

    SELECT CASE WHEN age IS NULL THEN Unspecified WHEN age lt 18 THEN lt 18 WHEN age gt 18 AND age lt 24 THEN 18 24 WHEN age
  • 如何检查R中整个向量是否没有除NA(或NAN)以外的值?

    如何检查 R 中整个向量是否没有除 NA 或 NAN 以外的值 如果我使用 is na 它会返回一个 TRUE FALSE 向量 我需要检查是否存在单个非 NA 元素 功能all 当传递一个布尔向量时 会告诉你其中的所有值是否都是TRUE
  • Jquery 移动更改页面后退按钮不起作用

    我的 JQM 主 HTML 文件中有 4 个页面 当我使用 Changepage 切换到一个时 第一次没问题 但我使用 data rel back 按钮返回 这切换到上一页 但然后弹回到具有后退按钮的页面 我应该不使用 data rel b
  • 如何修复 Cloud Foundry 上的“资源文件模式无效”

    我正在尝试使用 Cloud Foundry 将应用程序部署到 Bluemix 并得到以下输出 the neutral zone KituraTest loganwright cf push Using manifest file Users
  • Linq 查询字典,其中列表中的值

    我有一个Dictionary
  • 获取并显示 Woocommerce 3 中的可变产品价格范围

    我对 wordpress 和 woocommerce 很陌生 我正在修改二十七个主题的搜索结果页面 使其看起来像一个表格 大多数产品都是可变产品 我使用下面的代码在表格中显示结果 table class search res style w
  • Eclipse Java 项目文件夹组织

    我是从 C Visual Studio 背景转向 Java 和 Eclipse 的 对于后者 我通常会组织这样的解决方案 MyProjects MyApp MyAppsUtilities LowerLevelStuff 其中 MyApp 将
  • 如何在 PHP 中提取属性声明的起始行?

    通过反射 很容易获得起始线和结束线 例如源文件中的方法 ReflectionFunctionAbstract getFileName ReflectionFunctionAbstract getStartLine ReflectionFun
  • 国际化简单 PHP 网站的最佳方式

    我必须开发一个非常简单的 php 网站 所以我不需要框架 但它必须支持多语言 EN FR CHINESE 我寻找了 php 内置系统 发现了两种方法 php5 3 的 intl 模块 http php net manual fr book
  • 使用逻辑应用在无服务器 Azure Functions 上按顺序消息处理

    我需要在 Azure 上处理传入消息 每条消息都将与一个特定的实体相关联 例如 通过EntityId属性 属于同一实体的消息必须按彼此的顺序进行处理 同时 我会保留 Azure Functions 的无服务器特性 如果我有 1 000 个实
  • 升级到 Struts 2.3.15 - 约定插件导致启动时崩溃

    我正在将 Struts2 安装升级到 2 3 15 添加后struts2 convention plugin 2 3 15 jar我的网络应用程序无法启动 例外列表的相关部分是 Caused by Attribute order must
  • 如何检测iPad用户点击键盘隐藏按钮?

    在我的应用程序中 我有一些围绕键盘隐藏和显示的复杂逻辑 我有兴趣检测用户 拥有 iPad 何时专门点击 iPad 键盘隐藏按钮 I am not仅当用户实际点击此按钮时 才有兴趣检测键盘何时应该隐藏 有什么建议么 谢谢你 我一直在寻找完全相
  • 运行 ansible playbook 时如何缩小范围?

    我有一个剧本需要花费很多时间来执行 部分原因是它必须在很多节点上运行 我在 ansible 检查所有节点的状态上浪费了时间 并且我需要做一些中间某个地方发生了变化 缩小剧本范围的最佳方式是什么 我考虑过隔离所需的更改和 或仅在单个节点上运行