自动化运维工具Ansible使用(三)

ad-hoc模式基本使用

ansible在使用ad-hoc模式执行命令时,相当于使用SSH连接各个服务器并在服务器上执行命令。格式为:

一个典型的ansible ad-hoc命令格式为:

上面给出了两个例子,第一个例子为在group-a组中所有服务器上执行date命令;第二个例子为在所有服务器上执行service mysql restart命令。

第一个例子只是简单的执行命令,这里不多介绍。而在第二个例子中,我们使用了ansible自带的service模式,这个模式中提供了restart选项,这样我们就可以直接使用这个命令来重启服务。

ansible自带的模式有很多,可以通过以下命令查看当前ansible支持的模块:

逻辑运算

ansible对host的控制支持逻辑运算,举例如下:

目的:在group-a和group-b上执行date命令

目的:在group-a和group-b上排除site-1执行date命令

常用模块

下面用一些实例介绍比较常用的几个模块:

copy模块:

目的:把主控端/root目录下的a.sh文件拷贝到到指定节点上

file模块:

目的:更改指定节点上/tmp/t.sh的权限为755,属主和属组为root

cron模块:

目的:在指定节点上定义一个计划任务,每隔3分钟到主控端更新一次时间

service模块:

目的:重启指定节点上的 mysql 服务

script模块:

目的:在指定节点上执行/root/a.sh脚本(请注意,这个脚本存放在Server端而不是Client端)

ping模块:

目的:检查指定组机器是否还能连通

command模块:

目的:在指定组服务器上运行git pull命令

get_url模块:

目的:在制定服务器上执行wget操作

synchronize模块:

目的:同步Server和Client内容。将Server的/root/a目录推送到指定节点的/tmp目录下

这里有几个参数可以使用:

拉取

 查看进程:

目的:查看远程主机的httpd进程

以上就是一些常用的模式的使用,其他的模块和具体的说明信息见这里:Ansible Documentation – All Modules

参考:Ansible – exclude host from playbook execution

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注