个性化阅读
专注于IT技术分析

ansible模块

Ansible模块是离散的代码单元,可以从命令行或在Playbook任务中使用。

这些模块在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剧本时,这些模块可以以通知“处理程序”运行其他任务的形式触发“更改事件”。

可以使用Ansible-doc工具从命令行访问每个模块的文档:

ansible-doc yum

赞(0)
未经允许不得转载:srcmini » ansible模块

评论 抢沙发

评论前必须登录!