Ansible,如何在单个文件中加入多个数组?

2024-03-12

使用它作为我的样板:https://github.com/modcloth/ansible-role-modcloth-sumologic-collector https://github.com/modcloth/ansible-role-modcloth-sumologic-collector- 它工作得很好,但我正在寻找一些关于如何扩展它以满足我的预期需求的建议。我需要能够创建基于多个数组的 JSON 文件。

以下是我在 SumoLogic JSON 源中需要的默认数组。

角色/sumologic/defaults/main.yml:

sumologic_collector_default_log_path:

- { name: "Auth Log", path: "/var/log/auth.log", use_multiline: false, category: "OS/Linux/Auth" }

假设我想从 group_vars/app_server.yml 添加一个附加文件到 SumoLogic JSON 文件:

- { name: "Package Log", path: "/var/log/nginx/access.log", use_multiline: fasle, category: "OS/Linux/Nginx" }

如何使用模板将上面的示例合并到同一个目标文件中?

很高兴提供更多细节。不完全确定我的思路是否有意义,尽管我认为 set_fact 是这样做的一种方法,但我还没有足够理解这一点来找出一种方法。


Jinja2 是 Ansible 使用的模板引擎,它为您提供了轻松合并列表的选项:

array1 + array2

这是一个完整的示例剧本:

---

- name: Testing
  hosts: localhost
  gather_facts: no
  vars:
    array1:
      - a
      - b
      - c
    array2:
      - x
      - y
      - z
  tasks:
    - debug:
        msg: "{{ array1 + array2 }}"

...

Output:

PLAY [Testing] **************************************************************** 

TASK: [debug msg="{{ array1 + array2 }}"] ************************************* 
ok: [localhost] => {
    "msg": "['a', 'b', 'c', 'x', 'y', 'z']"
}

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

Ansible,如何在单个文件中加入多个数组? 的相关文章

  • 创建一个能够从容器注册表中提取的 Docker 就绪计算引擎

    我们使用 terraform 设置 GCE 实例 然后使用 ansible playbooks 来配置它们并将我们的服务转移到机器上 我正在我们的组织中运行一个项目 该项目需要从另一个项目中提取 Docker 映像 这些图像托管在另一个项目
  • 使用 with_items 连接字符串并分配给 Ansible 中的变量

    启动 ec2 实例时 我需要将两个 2 IP 保存到 vars 文件中的变量中 以便稍后在部署期间使用 这就是我保存单个服务器 IP 的方式 name Save server public IP to vars file lineinfil
  • Ansible 和硬件检查

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

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

    我需要能够安装 MySQL 库 Python 有 1 个用于 v2 的包和另一个用于 v3 的包 我需要能够告诉 Ansible 要安装哪个包 name Ensure MySQL python is installed pip name M
  • 如何更改 ansible_default_ipv4?

    我想将 ansible default ipv4 更改为指向 eth1 而不是 eth0 我可以在剧本中或通过 extra vars 选项来执行此操作吗 ansible 使用命令 https github com ansible ansib
  • Ansible local_action 指令

    我对 Ansible 很陌生 有一个简单的问题来了解我的理解local action指示 这是否意味着该命令完全在本地执行 假设你有这样的东西 local action command which nginx register check
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • if else 在 ansible 打印语句中

    我需要有关具有多个条件的打印语句的语法的帮助 目前 报价为 inventory hostname 导致错误 如果我删除剧本运行的引号 但列出文本 inventory hostname 而不是变量 我想知道如何打印变量以及 if else 语
  • 如何使用 Ansible 遍历嵌套的 dict 结构?

    我在 ansible 剧本中有以下 dict 结构变量 apache vhosts name foo server name foo com server aliases a foo com b foo com c foo com name
  • 从 Ansible 中的文件结果中提取文件名

    我正在尝试使用 Ansible 的结果find模块 它返回在特定文件夹中找到的文件列表 问题是 当我迭代结果时 我没有文件名 我只有它们的完整路径 包括名称 有没有一种简单的方法来使用find result item下面提供file nam
  • 'extra_vars' 可以接收多个文件吗?

    根据 Ansible 文档在运行时定义变量 https docs ansible com ansible latest user guide playbooks variables html defining variables at ru
  • 如何在 Ansible 中创建相对符号链接?

    在我的剧本中 我需要为存储库创建符号链接 使用命令 shell 它可能像这样工作 Create symbolic link name Create symbolic link shell ln s SOURCE FOLDER SYMLINK
  • 在远程 playbook 中运行 ansible 本地任务

    我试图让这个任务在本地运行 在运行剧本的机器上 name get the local repo s branch name local action git branch awk print 2 register branchName 我尝
  • 如何在microsoft windows下使用ansible克隆git存储库

    Ansible 2 1 centos7下控制主机 windows 10数量作为客户端 我需要在远程端克隆 git 存储库 但不知道如何执行此操作 没有Windows 本机模块 http docs ansible com ansible li
  • 如何在 Ansible 中制作幂等 shell

    我正在使用 Ansible 在尝试使 shell 执行幂等时遇到一些问题 我做的第一件事是安装python apt 包因为我需要它来使用 apt 模块来安装其他软件包 但每次我运行我的playbookshell 任务始终运行 我想使其幂等
  • Cloudformation 堆栈在执行所有用户数据之前显示为完整

    在我的 cloudformation 堆栈中 我有一个启动配置 它在用户数据中运行 ansible 脚本 这里的问题是 我的堆栈状态显示CREATE COMPLETE即使 ansible 脚本尚未完成执行 在我 ssh 进入 ec2 实例后
  • Ansible:对任务失败执行清理

    我目前正在编写一个 Ansible play 它遵循此通用格式并通过 cron 作业运行 pre tasks Configuration package installation tasks Work with installed pack
  • Ansible 创建可以访问所有表的 postgresql 用户?

    这应该很简单 我想要创建一个 Ansible 语句来创建一个 Postgres 用户 该用户具有特定数据库的连接权限以及对该特定数据库中所有表的选择 插入 更新 删除权限 我尝试了以下方法 name Create postgres user
  • 如果条件为 true 则运行一些包含 yml 文件

    我有一些剧本ubuntu and centos我想用main yml去检查when ansible os family RedHat or ansible distribution Centos 运行剧本 如一些和许多 当我跑步时 incl

随机推荐