关于Ansible的模块 ①

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


什么是Ansible模块

在Linux中,bash无论是在命令行上执行,还是在bash脚本中,都需要调用cd、ls、copy、yum等命令。而在Ansible中,模块就是Ansible的"命令"。模块是Ansible命令行和脚本中都需要调用的。常用的Ansible模块有yum、copy、template等。

bash在调用命令时可以跟不同的参数,每个命令的参数都是该命令自定义的。同样,Ansible中调用模块也可以跟不同的参数,每个模块的参数也都是由模块自定义的。

Ansible模块的使用

在命令行中:

  • -m 后面接调用模块的名字;

  • -a 后面接调用模块的参数;

    #使用模块copy复制/tmp/testsre.txt文件到所有远程主机/tmp/testsre.txt

    ansible all -m copy -a "src=/tmp/testsre.txt dest=/tmp/testsre.txt"

在playbook脚本中,task中的每一个Action都是对模块的一次调用。在每个Action中:

  • 冒号前面是模块的名字

  • 冒号后面是调用模块的参数


    复制代码
    tasks:
    - name: ensure apache is at the lastest version
      yum: pkg=httpd state=latest

    ......

Ansible模块的特点

  • 像Linux命令一样,既可以在命令行中使用,也可以在palybook中调用;
  • 每个模块的参数和状态的判断都取决于该模块的具体实现,所以在使用他们之前需要查阅该模块对应的文档;
  • 可以通过官网http://docs.ansible.com或ansible-doc命令查看模块的用法
  • Ansible提供一些常用功能的模块,也提供API,让用户可以自己使用Python写模块。

Ansible常用模块

1. 调试和测试类模块

  • ping:ping一下远程主机,返回pong则表示ansible连接远程主机成功;
  • debug:类似echo命令,用于打印一些简单消息做调试

2. 文件类模块

  • copy:从本地复制文件到远程节点
  • template:从本地复制文件到远程节点,并进行变量的替换
  • file:设置文件属性

3. Linux上的常用操作

  • user:管理用户
  • yum:包管理
  • service:服务管理
  • firewalld:管理防火墙的服务和端口

4. 执行shell命令

  • shell:在节点上执行shell命令,支持$HOME、"<"、">"、"|"、";"、"&"
  • command:在远程节点上面执行命令,不支持$HOME、"<"、">"、"|"、";"、"&"

下文预告:关于Ansible模块的使用

相关推荐
信创天地10 天前
自动化运维利器赋能信创:Ansible与SaltStack在国产系统的部署与批量管理实战
运维·自动化·ansible
tritone10 天前
使用阿贝云免费云服务器学习Ansible的实践与感受
服务器·学习·ansible
~黄夫人~13 天前
Ansible自动化运维:快速入门,从 “批量化执行” 开始
运维·自动化·ansible
~黄夫人~13 天前
Ansible 自动化运维:从 “手动输密码” 到 “一键免密管理”
linux·运维·自动化·ansible
王九思13 天前
Ansible 自动化运维介绍
运维·自动化·ansible
shawnyz14 天前
RHCSE--ansible1-入门和模块
linux·运维·ansible
AOwhisky14 天前
Ansible管理变量和事实(管理变量部分) & 部署文件到受管主机
前端·chrome·ansible
shawnyz15 天前
RHCSE--ansible2--剧本
linux·运维·服务器·ansible
何以不说话17 天前
记录一下学习日常⑨(ansible、Open-V、zabbix)
学习·ansible·zabbix
_叶小格_17 天前
ansible自动化入门基础
运维·笔记·学习·自动化·ansible