Ansible(二)如何在多台主机上批量执行任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible(二)如何在多台主机上批量执行任务相关的知识,希望对你有一定的参考价值。

参考技术A Ansible批量执行任务有两种方式 adhoc 和 playbook ,当执行简单的命令时,可以使用 adhoc ,当执行复杂的命令,涉及多个模块/条件等时,建议使用 playbook

ansible 的底层是 python ,但是我们在使用 ansible 的时候不需要写 python 脚本,而是直接调用模块即可。
模块是由红帽官方或者其他合作伙伴或开发爱好者开发好的脚本,我们可以通过调用模块,来执行对应的命令。

ansible-doc -l

ansible-doc ping

ansible" host-pattern" -m "module" -a"module argument" -i "inventroy-path"

playbook 是一个 yaml 格式的文件,后缀名为 .yml 或者 .yaml

在一个 playbook 文件中,可以包含多个 play
一个 play 就是要在指定主机中执行的一系列操作,在一个 play 中可以指定 hosts (在哪些主机上执行)和 tasks (执行哪些命令)
tasks 中可以包含多个 task ,每个 task 就是对一个模块的调用

ansible-playbook webserver.yml -e "user=root"

Playbook通常是幂等的,即同一个playbook,无论运行多少次,最终的结果都是一样的。如果被控主机之前已经进行了更改,那么再次运行playbook的时候不会进行变更。

以下是一个 playbook 的执行结果示例

TASK 的执行结果

以上是关于Ansible(二)如何在多台主机上批量执行任务的主要内容,如果未能解决你的问题,请参考以下文章

Ansible-playbook管理复杂任务

Ansible配置

ansible运维工具

TiOps命令分发如何使用

Ansible1: 简介与基本安装

运维自动化轻量级工具pssh