Ansible 可解析查询数据

Ansible 可解析查询数据,ansible,Ansible,Ansible主要用于在远程机器上运行任务。我想用它从一堆机器中反向提取数据并将其存储在本地。我喜欢安装模块,但现在我对拉一个用户列表感兴趣,而安装模块没有显示 此外,我想将此信息添加到mariadb表中 我可以用shell模块完成这个项目,但是,我的问题是,有更好的方法吗 除非有人能告诉我更好的做法,否则我将使用shell模块来完成两部分:首先,我将简单地cat/etc/passwd并注册它的输出。然后,执行一个调用mysql命令来更新表的本地_操作shell脚本 我希望使用标准模块来提取数据

Ansible主要用于在远程机器上运行任务。我想用它从一堆机器中反向提取数据并将其存储在本地。我喜欢安装模块,但现在我对拉一个用户列表感兴趣,而安装模块没有显示

此外,我想将此信息添加到mariadb表中

我可以用shell模块完成这个项目,但是,我的问题是,有更好的方法吗

除非有人能告诉我更好的做法,否则我将使用shell模块来完成两部分:首先,我将简单地cat/etc/passwd并注册它的输出。然后,执行一个调用mysql命令来更新表的本地_操作shell脚本


我希望使用标准模块来提取数据并将数据插入/更新到我的表中。但似乎没有任何模块也能做到这一点。

您可以使用本地事实。这里描述了它

如果远程管理系统具有/etc/ansible/facts.d目录,则此目录中以.fact结尾的任何文件都可以是JSON、INI或返回JSON的可执行文件,这些文件可以在ansible中提供本地事实

然后,您可以通过以下行获得json格式的本地事实:

ansible <hostname> -m setup -a "filter=ansible_local"
ansible-m设置-a“filter=ansible\u local”

对于系统用户事实,您可以编写一个shell脚本,以json格式返回系统用户,并将该脚本放在/etc/ansible/facts.d下。每次你从这台机器上收集事实的时候,你也有这些事实。

本地的事实很简单,但在这种情况下,可能不是我想要的。无论哪种方式,我都使用shell脚本生成列表。对于本地事实,这是一个cron任务,对于shell模块,可能需要更长的时间,但至少我不必依赖于远程系统的预先设置和正确性。