我可以使用以下命令在本地MacOS系统上收集Ansible事实的列表:
ansible -m setup localhost
但是,该事实列表显然没有提供已安装的Homebrew软件包的列表。
如果运行此命令,我也不会获得有关已安装的Homebrew软件包的任何其他信息:
ansible -m homebrew localhost
我得到的是以下输出:
localhost | SUCCESS => {
"changed": false,
"msg": ""
}
问题:如何扩展Ansible来收集已安装的 Homebrew软件包列表作为Ansible的“事实”?
答案 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