Ansible常用模块,ad-hoc命令集与命令详细介绍

Ansible 默认提供了很多模块来供我们使用。在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc -s 模块名 又可以查看该模块有哪些参数可以使用。
官网文档:http://docs.ansible.com/ansible/latest/list_of_all_modules.html

Ansible常用模块

1、ping模块
2、raw模块
3、yum模块
4、apt模块
5、pip模块
6、synchronize模块
7、template模块
8、copy模块
9、user 模块与group模块
10、service 模块
11、get_url 模块
12、fetch模块
13、file模块
14、unarchive模块
15、command 模块和shell

1、ping模块

检查指定节点机器是否还能连通,用法很简单,不涉及参数,主机如果在线,则回复pong

2、raw模块

执行原始的命令,而不是通过模块子系统。在任何情况下,使用shell或命令模块是合适的。给定原始的参数直接通过配置的远程shell运行。可返回标准输出、错误输出和返回代码。此模块没有变更处理程序支持。
这个模块不需要远程系统上的Python,就像脚本模块一样。此模块也支持Windows目标。

3、yum模块

这个模块是RedHat / CentOS作为远端节点的OS的时候,用的最多的。Yum是啥就不多说了,RedHat / CentOS包管理工具
使用`yum’软件包管理器管理软件包,其选项有:
– config_file:yum的配置文件 (optional)
– disable_gpg_check:关闭gpg_check (optional)
– disablerepo:不启用某个源 (optional)
– enablerepo:启用某个源(optional)
– name:要进行操作的软件包的名字,默认最新的程序包,指明要安装的程序包,可以带上版本号,也可以传递一个url或者一个本地的rpm包的路径
– state:状态(present,absent,latest),表示是安装还卸载
present:默认的,表示为安装
lastest: 安装为最新的版本
absent:表示删除  

4 template模块

基于模板方式生成一个文件复制到远程主机(template使用Jinjia2格式作为文件模版,进行文档内变量的替换的模块。它的每次使用都会被ansible标记为”changed”状态。)
– backup: 如果原目标文件存在,则先备份目标文件
– src:在ansible控制器上的Jinja2格式化模板的路径。 这可以是相对或绝对的路径。
– dest:将模板渲染到远程机器上的位置。
force:是否强制覆盖,默认为yes
– owner:目标文件属主
– group:目标文件属组
– mode:目标文件的权限模式,模式可以被指定为符号模式(例如,u + rwx或u = rw,g = r,o = r)。
5 copy模块

在远程主机执行复制操作文件。
– src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用”/”

### Ansible Playbook相较于Ad-Hoc的优势分析 #### 可重复性和一致性 Playbook 是一种基于 YAML 文件编写的脚本,可以保存并多次运行相同的配置任务。这种方式能够确保每次执行的结果一致,非常适合用于复杂的部署场景或需要频繁更新的任务[^2]。 相比之下,Ad-Hoc 命令虽然灵活,但由于其临时性质,无法轻松记录和重用之前的命令。这可能导致在复杂环境中难以保持操作的一致性[^1]。 #### 复杂任务支持 Playbook 支持多步任务的定义,允许用户通过多个模块组合实现更复杂的逻辑控制,比如条件判断 (`when`)、循环 (`loop`) 和变量替换等功能。这种特性使得 Playbook 成为处理涉及多个步骤或者依赖关系的任务的理想工具。 而 Ad-Hoc 则更适合简单的单次操作,对于需要协调多个服务器完成一系列相互关联的动作来说可能显得力不从心[^3]。 #### 配置管理能力 利用 Playbook 进行长期项目维护时更加高效,因为它不仅提供了强大的模板引擎 Jinja2 来动态生成配置文件,还具备错误恢复机制以及日志记录功能。这些特点有助于提高系统的稳定性和可追踪性。 相反,由于缺乏持久化存储方式,Ad-Hoc 并不适合用来构建持续集成/持续交付(CI/CD)流水线中的固定环节。 ```yaml --- - name: Example of a simple playbook with multiple tasks hosts: webservers become: yes tasks: - name: Ensure Apache is at the latest version yum: name: httpd state: latest - name: Start the Apache service and enable it to start on boot service: name: httpd state: started enabled: yes ``` 上述示例展示了如何在一个 Playbook 中同时升级软件包和服务状态两项工作,这是单纯依靠 Ad-Hoc 很难做到的事情。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值