模组介绍

模组(也称为 “任务插件” 或 “库插件”)是一些可在命令行上,或在某个 playbook 任务中使用的分离代码单元。Ansible 通常会在远端托管节点上,执行各个模组,并收集返回值。在 Ansible 2.10 及更高版本中,大多数模组都托管在专辑中了。

咱们可在命令行上执行模组:

ansible webservers -m service -a "name=httpd state=started"
ansible webservers -m ping
ansible webservers -m command -a "/sbin/reboot -t now"

每个模组都支持一些参数。几乎所有模组都会取一些以空格分开的 key=value 参数。有些模组则不取参数,而 command/shell 模组,就只取咱们要运行命令的字符串。

在 playbook 中,Ansible 模组会以非常类似的方式被执行。

- name: reboot the servers
  command: /sbin/reboot -t now

另一种传递参数给模组的方式,是使用 YAML 语法,这也称为 “复参,complex args”。

- name: restart webserver
  service:
    name: httpd
    state: restarted

所有模组都会返回 JSON 格式的数据。这意味着模组可以任何编程语言编写。模组应是幂等性的,并在检测到当前状态与所需的最终状态一致时,应避免进行任何更改。当于 Ansible playbook 中被用到时,模组可触发通知 处理程序,以运行额外任务形式的 'change events'

使用 ansible-doc 工具,咱们可以在命令行,访问到各个模组的文档。

ansible-doc yum

有关所有可用模组的列表,请参阅 Collection 文档,或在命令提示符下运行下面这个命令。

ansible-doc -l

(End)

Last change: 2025-02-18, commit: 41dcb60

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。