Playbook 位于子目录中,而不是紧邻 group_vars

2024-03-13

有谁知道如何将剧本放入文件夹中,但共享相同的角色、group_vars 以及通常位于根目录的其他内容?

这就是我想要的:



root_dir:
- group_vars
- roles
- inventory
- playbooks
  - my_playbook.yml
- site.yml
- deploy.yml
  

我们的根目录现在变得相当大,我想将一些剧本分成自己的文件夹(如上面的 playbooks/ 所示)。一个相同的小型 playbook 在目录(例如 playbooks/)与根目录中无法运行,因为它不会从 group_vars 中获取内容。

我可以部分解决这个问题,并在我的剧本/中运行一个剧本/ 目录:



- hosts: host_group
  sudo: true
  gather_facts: false
  vars_files:
  - ../group_vars/all/main.yml
  

这会获取 main.yml 中定义的变量。但是,我不清楚这是否会添加 group_vars/ 中定义的组变量,而不是明确指定的 ../group_vars/。

Thanks!


Ansible 将会接听group_vars没有明确说明路径:

这是示例目录结构/tmp/ansible:

/tmp/ansible
├── group_vars
│   └── test_group.yml
├── inventory
├── playbooks
│   └── foo.yml
└── site.yml

库存文件:

[test_group]
localhost

主要剧本site.yml:

# site.yml
---
- include: playbooks/foo.yml 

二级剧本foo.yml:

---
- hosts: localhost

  tasks:

      - debug: var=foo

组变量test_group.yml:

foo: bar

以下是执行辅助剧本的所有方法:

  • 使用相对路径从根文件夹/tmp/ansible:

    ansible-playbook -i inventory playbooks/foo.yml -c local
    
    PLAY [localhost] **************************************************************
    
    GATHERING FACTS ***************************************************************
    ok: [localhost]
    
    TASK: [debug var=foo] *********************************************************
    ok: [localhost] => {
        "var": {
            "foo": "bar"
        }
    }
    
    PLAY RECAP ********************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0
    
  • 来自父路径中库存的 Playbooks 子文件夹/tmp/ansible/playbooks:

    ansible-playbook -i ../inventory foo.yml -c local
    
    PLAY [localhost] **************************************************************
    
    GATHERING FACTS ***************************************************************
    ok: [localhost]
    
    TASK: [debug var=foo] *********************************************************
    ok: [localhost] => {
        "var": {
            "foo": "bar"
        }
    }
    
    PLAY RECAP ********************************************************************
    localhost                  : ok=2    changed=0    unreachable=0    failed=0
    

正如我们在上面的例子中看到的,ansible-playbook将根据路径寻找变量inventory file或执行 ansible 的文件夹。无需额外工作即可分离 Playbook。

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

Playbook 位于子目录中,而不是紧邻 group_vars 的相关文章

  • 在 Ansible 的字典列表中搜索键 [重复]

    这个问题在这里已经有答案了 我有一个类似于以下内容的字典列表 subnets name subnet1 name34554 address 192 168 1 100 id id1 name subnet2 name67678 addr 1
  • 如何在ansible中为变量分配随机数?

    这是一个 ansible 脚本 我希望它能打印出相同的随机数 3 次 相反 它打印出三个随机数 如何将随机数分配给 ansible 中的变量 以便它在整个剧本中固定 name Test random filter hosts localho
  • 如何在 YAML 中使用 IF ELSE 和变量?

    我正在使用 Ansible Tower 的 YAML 文件 其中包含以下信息 name Package Deployment block name Update package package yum update cache True u
  • Ansible:从意图文件创建字典

    shell gt cat myfile yml ABC ABC C01 host a1 prefixlen 19 host a2 prefixlen 19 DEF DEF C01 host d1 prefixlen 19 host d2 p
  • 如何根据任务或任务集切换用户?

    我的 ansible 手册中反复出现的主题是我经常必须使用 sudo 权限执行命令 sudo yes 因为我想为某个用户执行此操作 理想情况下 我宁愿使用 sudo 切换到该用户并正常执行命令 因为这样我就不必执行通常的后命令清理工作 例如
  • Ansible:全局模板文件夹?

    谷歌搜索找不到任何东西 有group vars 全部 对于变量 有类似的模板吗 我想在多个角色中使用一些模板 您可以将全局模板放入templatesAnsible 布局顶层目录 与group vars 顺便说一句 全局文件也是如此 file
  • 将事实收集到事实缓存的最快方法

    我正在尝试让 Ansible 与 limit 一起工作 为此我需要有关其他主机的事实 我正在使用fact caching进行缓存 我应该运行什么命令 以便它只收集所有主机上的所有事实并缓存它们 而不运行任何任务 像这样的东西设置模块 htt
  • 安西布尔。覆盖单个字典键[重复]

    这个问题在这里已经有答案了 我使用 ansible 来管理生产和 vagrant box 的配置 我有带有默认值的文件 组变量 全部 env prod wwwuser www data db root pwd root pwd pdo dr
  • 如何将文件从 Ansible Tower 上传到 Artifactory?

    我每次都会收到此错误 但仅在尝试从 Ansible Tower 上传到 Artifactory 时出现在特定文件上 这些文件都是在清单主机上创建的Oracle Collection Tool 然后在上传到 Artifactory 之前获取到
  • 带变量的 ansible regex_search

    如何在ansible playbook中使用正则表达式查找匹配项 其中变量出现在regex search争论 以下剧本在使用以下命令运行时找不到匹配项 ansible playbook playbook yml hosts localhos
  • 有条件地使用文件夹大小

    我只想在大小大于特定大小时删除文件夹 不幸的是我无法达到想要的结果stat module Attempt hosts pluto tasks stat path home ik thunderbird register folder nam
  • Ansible:即使成为 sudo 用户,也无法配置 sudo 命令

    testuser 是 sudo 用户 sudo cat etc sudoers d 90 cloud init testuser testuser ALL ALL NOPASSWD ALL 我可以手动登录 testuser 并在没有密码的情
  • 使用 Python API 2.0.0.1 运行 Ansible Playbook

    安塞布尔版本 2 0 0 1 我现在已经四处寻找了很多 我发现的大多数文档要么不完整 要么已弃用 这篇文章适用于1 8 4版本 即 https stackoverflow com questions 27590039 running ans
  • 在 Ansible 中检查已安装的 yum 包/rpm 版本并使用它的最佳方法

    我已经在 CentOS 7 上尝试使用 Ansible 2 0 0 2 我试图从已安装的 rpm yum 软件包中获取版本 但在运行脚本时遇到警告消息 安塞布尔脚本 name Get version of RPM shell yum lis
  • Ansible 和硬件检查

    我必须使用 ansible 检查 Linux 机器上的不同硬件和配置元素 我完全不确定如何做到这一点 RAM 磁盘空间 DNS CPU 我知道我几乎可以找到我想要的所有事实都在 ansible 中 但我不明白如何使用它 例如 我必须检查 R
  • 如何读取/理解目标主机上的ansible日志(由syslog编写)

    当你在某个主机上执行 ansible 时 它 会写入该主机上的 syslog 如下所示 Dec 1 15 00 22 run tools python ansible
  • 如何在 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:基于 extra-vars 文件的任务顺序

    我有包含 10 个任务的 ansible 剧本 任务的顺序因用例而异 因此我必须为每个用例创建 extraVar yml 文件 并且 extraVar yml 将定义任务的顺序 怎么做 Example 剧本 tasks name task1
  • 使用 ansible 'Docker login' 和 _json_key Docker 登录到 GCE

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

随机推荐

  • 如何将用户输入的值附加到 df 的不同列中?

    我正在尝试创建一个df基于用户输入如下 import pandas as pd data pd DataFrame columns ID QTY MOA TAX while True add seg input Do you want to
  • 验证 XSD 架构?

    我正在编写一个 XML 架构 XSD 来描述我们的合作伙伴向我们发送数据时应采用的格式 我很难找到一个可以验证我编写的 XSD 架构文件的工具 到目前为止我发现的最好方法是首先编写一个示例输入 XML 文件 然后尝试验证that与 XSD
  • 如何在reactjs new hook api中进行api调用并跨组件共享?

    如何在新的reactjs hook api中调用rest Api 并使用 useEffect 和 useState 重用数据 我只想跨组件重用数据 import useState useEffect from react export de
  • mysql 按唯一单词匹配的数量排序

    我发现很多问题都要求出现次数 但没有一个问题与我希望的完全一样 动态生成的 准备好的语句 查询将产生如下结果 SELECT FROM products WHERE title LIKE AND title LIKE AND content
  • 更改 Bootstrap Typeahead 的外观

    我一直在尝试使用引导程序进行搜索提前输入 我已经能够得到dropdown list使用 Ajax 但是 我想更改下拉列表的宽度以及其中的填充和基本背景颜色 这是白色的 我该怎么做 另外 我希望它始终显示a gt View All Resul
  • 在 MVC 应用程序中将实体框架数据模型放在哪里?

    让我们考虑默认的 ASP NET MVC 应用程序文件夹结构 它看起来像这样 App data Content Controllers HomeController cs Models AccountModels cs Scripts Vi
  • 是否可以在批处理文件中逐行从管道中读取?

    我想知道是否可以从批处理文件中的管道中读取数据 如果我写 echo Test 我明白 毫不奇怪 Test 那很好 但是如果我想通过管道传输输出并从另一个命令读取它怎么办 echo Test echo 如何通过管道获得与以前相同的结果 谢谢
  • 警告:json_decode() 最多需要 2 个参数,给定 4 个参数

    我尝试像这样使用 json decode json decode string true 100 JSON BIGINT AS STRING 但我收到错误 Warning json decode expects at most 2 para
  • 转换 LOG4J >> SLF4J + logback

    我目前的任务是将所有出现的 LOG4J 更改为 SLF4J 包括必要时的 logback 我已经设法将所有旧的 log4j xml 转换为 logback xml 并强制使用 logback 附加程序 但是 我刚刚发现代码中的一行还无法转换
  • 加载共享库 libresolv.so.2 时出错:没有这样的文件或目录(/lib/libclntsh.so 需要)

    每次我尝试连接到 Oracle DB 时都会收到此错误 DPI 1047 Cannot locate a 64 bit Oracle Client library Error loading shared library libnsl so
  • 关于代码密度作为编程语言能力衡量标准的文章[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我记得看过一篇文章说这样的话 不同的编程语言引入的错误数量差异不大 但很大程度上取决于 SLOC 源代
  • 如何防止 React-native-device-info 导致我的设置出现 React 歧义?

    我在安装时遇到问题react native device info进入现有的反应本机项目 使用创建create react native app然后弹出 I run yarn add react native device info yar
  • Visual Studio 2010 不断改变我的 winforms 控件

    我在 VS 2010 中的用户控件遇到了奇怪的情况 表单设计者不断更改我的条目 然后告诉我它不存在 它第一次编译并运行 然后如果我更改一些不相关的内容 它会在 Designer cs 文件中给出错误 无法解析符号 SomeEntry pri
  • Android 位图、回收和堆碎片

    我有一个应用程序大量使用从 SD 卡读取的位图 我 99 确信如果不回收这些 我的应用程序永远不会被破坏 它们都被分配到 LRU 缓存 公共集合 中 当它们从 LRU 缓存中清除时 该缓存会回收它们 并且我回收剩余的onDestroy 尽管
  • 脚本输出中日期更改的奇怪问题

    我的一位同事编写了一个 Google Apps 脚本来自动化工作流程 批准酒店的客房补偿请求 总的来说 该脚本似乎按预期运行 脚本中有一个按自动计划运行的函数 基于时间 而不是事件驱动 曾有过几次因入住日期晚了一位而导致预订错误的情况 不幸
  • 使用 Xceed PropertyGrid

    我是 C WPF 的初学者 正在尝试使用 Xceed PropertyGrid 他们在他们的网站上展示了一个示例
  • 删除 Woocommerce 中特定产品类别的添加购物车按钮

    我遇到如何从类别产品中删除购物车的问题 如果我将它应用于特定的 ID 或一般情况下的所有 ID 它就可以正常工作 但我无法对类别执行此操作 下面是我对此所做的代码 另外 我正在努力将相同的模式应用到相关文章部分 因此任何帮助将不胜感激 谢谢
  • 如何使用 opencv 和 Python 找到 ROI 内的轮廓?

    我试图找到图像特定区域的轮廓 是否可以只显示 ROI 内的轮廓 而不显示图像其余部分的轮廓 我在另一篇类似的文章中读到我应该使用面具 但我认为我使用得不正确 我对 openCV 和 Python 很陌生 所以非常感谢任何帮助 import
  • 检测网络下拉菜单是否将显示在屏幕外

    我有一个基于 CSS 的简单多级下拉菜单 第二或第三级可能会超出可见窗口 具有某些分辨率和窗口大小的组合 如果某些预构建的菜单控件检测到这种情况 它们只会向左而不是向右打开下拉菜单 我如何测试 使用 JS jQuery 这种情况 您可以使用
  • Playbook 位于子目录中,而不是紧邻 group_vars

    有谁知道如何将剧本放入文件夹中 但共享相同的角色 group vars 以及通常位于根目录的其他内容 这就是我想要的 root dir group vars roles inventory playbooks my playbook yml