如何使用Ansible的自制软件来声明一个软件包列表

我是Ansible的一个相对较新的用户。 我用它来编排几组Linux服务器。 我现在正在扩大使用Ansible的自制软件模块 。

使用自制软件模块,我想断言一个软件包列表被安装在我的macOS盒子上。 到目前为止,我可以做的最好的做法是为每个包制作单独的angular色,每个angular色类似于:

- name: "htop" homebrew: name: htop state: present 

似乎必须有一种方法来给出一个单一angular色的包列表,这在我使用Ansible apt模块之前就已经见过了。

有小费吗? 自制软件模块本身是否明确地支持这种操作,或者Ansible或甚至是Python自身提供了什么更重要的东西?

PS – 你可以放心地假设我的macOS机器都是服务器。

我find了一个或多或less的解决scheme。 我的angular色现在看起来像这样,它的作品:

 - name: "brew favourites" homebrew: name={{ item }} state=present with_items: - htop - nmap - telnet - wget - nginx 

扩展的笔记

我不知道什么机制是负责这项工作。 我觉得它在Ansible之外,实际上是一个Pythonism(这是一个Lamda?)。 不pipe它是什么,它都可以作为这种事情的一般解决scheme的模板。

在看到类似于定义apt套件列表的类似描述之后,我尝试了上面的方法:

 - name: "Asserting apt packages" apt: pkg={{ item }} state=installed with_items: - aptitude - vim - htop - nmap - curl - screen - open-vm-tools 

因此请注意,在apt模块中 ,我想要为pkg参数列出许多软件包。 在自制模块的上下文中,它不是pkg ,而是名称

类似地,两个Ansible模块都有一个状态参数,但是对于apt而言, 安装了适当的值,并且存在自制软件。

所以我认为这种语法在全球范围内适用于Ansible。 而模块需要零知名度或明确的支持。 强大。