运行 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安装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
  • 使用 ansible SSH 到远程服务器

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

    我只想在大小大于特定大小时删除文件夹 不幸的是我无法达到想要的结果stat module Attempt hosts pluto tasks stat path home ik thunderbird register folder nam
  • 使用 Ansible 配置 EC2 实例时遇到问题

    我对如何使用 Ansible 启动 EC2 实例感到非常困惑 我正在尝试使用 ec2 py 库存脚本 我不确定应该使用哪一个 因为 Ansible 安装了三个 ansible lib ansible module utils ec2 py
  • 如何读取/理解目标主机上的ansible日志(由syslog编写)

    当你在某个主机上执行 ansible 时 它 会写入该主机上的 syslog 如下所示 Dec 1 15 00 22 run tools python ansible
  • Ansible 无法运行任何命令或 shell

    我在 RPi 上运行任何命令或 shell 时遇到问题 当我使用以下代码时 name Example command ansible builtin command cmd cat etc motd 我收到此错误 Unsupported p
  • 如何更改 ansible_default_ipv4?

    我想将 ansible default ipv4 更改为指向 eth1 而不是 eth0 我可以在剧本中或通过 extra vars 选项来执行此操作吗 ansible 使用命令 https github com ansible ansib
  • 使用带有文件模块的ansible创建目录列表很慢

    我有一个角色 必须创建目录列表 哪些目录最终出现在列表中取决于运行时评估的几个条件 当我使用file模块 如图所示 这非常慢 创建甚至检查每个目录是否存在大约需要半秒 在我遇到的场景中很容易就达到几分钟 流水线已启用 name Create
  • 无法获得与取消存档模块一起使用的“排除”选项

    我有一个 tar gzip 文件 我正在使用 ansible 取消归档模块将其提取到主机列表中 以下是configs tgz的部分内容列表 rw rw r ian ian 1295 2015 09 25 15 27 Makefile rw
  • 如何使用ansible运行询问用户输入的脚本?

    我想使用 ansible 运行 shell 脚本 但 shell 脚本需要用户输入才能成功执行 例如 我的 shell 脚本询问唯一的 idossec agent 通过ansible我可以预定义我的unique id user input
  • 从 Ansible 中的文件结果中提取文件名

    我正在尝试使用 Ansible 的结果find模块 它返回在特定文件夹中找到的文件列表 问题是 当我迭代结果时 我没有文件名 我只有它们的完整路径 包括名称 有没有一种简单的方法来使用find result item下面提供file nam
  • 如何在 Ansible 中创建相对符号链接?

    在我的剧本中 我需要为存储库创建符号链接 使用命令 shell 它可能像这样工作 Create symbolic link name Create symbolic link shell ln s SOURCE FOLDER SYMLINK
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • ansible playbook失败:超时(12秒)等待权限升级提示:“}

    我正在尝试在虚拟机上自动执行一些手动任务 作为其中的一部分 我的虚拟机没有直接的根访问权限 所以我必须使用不同的用户 然后升级到root 当我尝试切换到 root 用户时 密码提示与默认提示不同 我看到的提示如下图 user1 vm 1 t
  • AnsibleError:模板化字符串时出现模板错误:预期标记“:”,得到“}”

    准备模板时出现错误 谁能告诉你如何修复它 如有必要 还可以编辑变量 vars All ountry name1 name2 name1 region1a region1b name2 region2a region2b Code for c
  • 如何在 Ansible 中制作幂等 shell

    我正在使用 Ansible 在尝试使 shell 执行幂等时遇到一些问题 我做的第一件事是安装python apt 包因为我需要它来使用 apt 模块来安装其他软件包 但每次我运行我的playbookshell 任务始终运行 我想使其幂等
  • 我们如何在使用循环时调用 ansible playbook 中的变量

    我有两个文件 其中这些文件包含server names and server IP s 我想更改 替换一些特定的server names and IP addressees根据要求在两个文件中 这与这篇文章 因为它被要求开设一个新职位 ht
  • Ansible - 当至少一项在循环中失败时跳过任务

    我正在使用 sqlplus 运行一些 SQL 脚本 在运行之前 我从该目录获取所有 sql 文件列表并将其存储在sql out如下所示 问题是 如果其中一个 sql 脚本失败 其余 sql 脚本仍然会执行 如果任何一个脚本失败 我想完全跳过
  • Cloudformation 堆栈在执行所有用户数据之前显示为完整

    在我的 cloudformation 堆栈中 我有一个启动配置 它在用户数据中运行 ansible 脚本 这里的问题是 我的堆栈状态显示CREATE COMPLETE即使 ansible 脚本尚未完成执行 在我 ssh 进入 ec2 实例后
  • 如何使用 Ansible 设置环境变量

    我需要设置变量 例如JAVA HOME并更新PATH 有多种方法可以做到这一点 一种方法是更新 etc environment变量并包含一行JAVA HOME使用文件行 http docs ansible com ansible linei

随机推荐

  • 使用两个数据框列应用 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 检查所有节点的状态上浪费了时间 并且我需要做一些中间某个地方发生了变化 缩小剧本范围的最佳方式是什么 我考虑过隔离所需的更改和 或仅在单个节点上运行