收集安装的Homebrew软件包作为MacOS的“事实”

时间:2019-07-14 21:41:29

标签: ansible

我可以使用以下命令在本地MacOS系统上收集Ansible事实的列表:

ansible -m setup localhost

但是,该事实列表显然没有提供已安装的Homebrew软件包的列表。

如果运行此命令,我也不会获得有关已安装的Homebrew软件包的任何其他信息:

ansible -m homebrew localhost

我得到的是以下输出:

localhost | SUCCESS => {
    "changed": false,
    "msg": ""
}

问题:如何扩展Ansible来收集已安装的 Homebrew软件包列表作为Ansible的“事实”?

1 个答案:

答案 0 :(得分:0)

为解决这个问题,我刚刚学习了如何通过this article创建Ansible自定义事实。

解决方案非常简单。我在路径/etc/ansible/facts.d/homebrew.fact下创建了以下自定义Ansible事实文件,该文件运行良好。

#!/usr/bin/env pwsh
brew list -1 | ConvertTo-Json

请确保您也使*.fact*文件可执行,否则Ansible不会调用它们。

sudo chmod +x /etc/ansible/facts.d/homebrew.fact

注意:需要安装PowerShell。 brew cask install powershell