Ansible教程

Ansible 模块

Ansible 模块

Ansible 模块是离散的代码单元,可以从命令行或剧本任务中使用。
这些模块也被称为作为 Ansible 中的任务插件或库插件。
Ansible 附带多个模块,称为 模块库,可以直接执行或通过 playbook 远程主机执行。
用户也可以编写他们的模块。这些模块可以控制服务、系统资源、文件、或包等等,并处理执行系统命令。
让我们看看如何执行三个来自命令行的不同模块。
ansible webservers-m service-a "name=httpd state=started"
ansible webservers-m ping
ansible webservers-m command-a "/sbin/reboot-t now"
每个模块都支持带参数。主要是所有模块都采用key=value 参数,空格分隔。
有些模块不采用参数,shell/command 模块采用您要执行的命令的字符串。
从剧本来看,Ansible 模块的执行方式非常相似,例如:
-name: reboot the servers
  command: /sbin/reboot-t now
这是将参数传递给使用YAML 语法的模块的另一种方法,它也称为复杂参数。
-name: restart webserver
  service:
    name: httpd
    state: restarted
从技术上讲,所有模块都返回 JSON 格式的数据,尽管是命令行或剧本,但您不需要对此了解太多。如果您正在编写模块,这意味着您不必使用您可以选择的任何特定语言编写模块。
模块应该是幂等的,并且如果它们检测到当前状态,则避免进行任何更改匹配所需的最终状态。使用 Ansible playbook 时,这些模块可以以通知"处理程序"的形式触发"更改事件"以运行其他任务。
每个模块的文档可以使用 Ansible-doc 工具从命令行访问模块:
ansible-doc yum
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4