【问题标题】:Identify Ansible playbooks识别 Ansible 剧本
【发布时间】:2019-07-20 11:46:13
【问题描述】:

我想使用 ansible-lint 为我项目中的所有 Ansible playbook 添加自动语法检查(作为 CI 过程)。 项目的几个目录中有剧本,所以我想使用类似locate *.yml的东西。但是,问题是我的项目中还有其他一些 YAML 文件,它们不是 Ansible 剧本,因此我不希望 ansible-lint 测试这些文件(因为它总是会失败)。

有什么方法可以区分 ansible playbook 和常规 YAML 文件吗?

【问题讨论】:

  • 你可以使用taskshosts。我更喜欢tasksroles
  • @error404 tasksroles 是什么意思?
  • 就像主机 tasksroles 是每个 ansible playbook 中的关键字一样。
  • @error404 哦,我明白了。那么,例如,我如何 grep 处理具有 - hosts:tasks 的文件?
  • egrep “hosts|tasks”

标签: ansible yaml lint ansible-lint


【解决方案1】:

我假设您所有的 ansible-playbook 都包含类似 - hosts 的内容,也许您可​​以使用 grep 进行搜索查询。然后使用 | xargs ansible-lint 对找到的文件执行 linter。

所以忘记.yaml 文件扩展名,而是采用另一种方法。你会想出来的:)

【讨论】:

  • 如果我尝试执行grep -rwl '- hosts:' 之类的操作,我会收到错误消息:grep: invalid option -- ' ',但如果没有-,它可以正常工作。有什么方法可以包含-
  • grep -rwl -- '- hosts:'
猜你喜欢
  • 1970-01-01
  • 2018-03-19
  • 2020-05-08
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
相关资源
最近更新 更多