命令ansible是日常工作中使用率非常高的命令之一,man中是如此定义其功能的 run a command somewhere else ,可见其灵活性。因此,ansible命令主要在如下场景使用:

非固化需求 临时一次性操作 二次开发接口调用

//检查服务器存活 ansible web1 –m ping //复制本地文件到远程 ansible web1 –m copy –a “src=/etc/fstab dest=/tmp/fstab owner=root group=root mode=644 backup=yes”

Ansible的返回结果都非常友好,一般会有三种颜色的返回来表示执行结果:红色、绿色、橘×××。其中红包表示执行过程有异常,一般都会中止剩余所有的任务如Ansible执行结果错误的结果返回;绿色和橘×××表示执行过程没有异常所有任务均正常执行,但橘×××表示命令执行结束后目标有状态的变化,如图2-3Ansible执行结果正确的结果返回中的圆圈1显示;而绿色表示命令执行结束后目标没有状态变化

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包管理工具

4丶apt模块

这个模块是ubuntu作为远端节点的OS的时候,用的最多的。Apt是啥就不多说了,Ubuntu/Debian的包管理工具。

5、pip模块

用于管理Python库依赖项,为了使用pip模块,必须提供参数name或者requirements

6、synchronize模块

– 使用rsync同步文件,将主控方目录推送到指定节点的目录下

7、template模块

基于模板方式生成一个文件复制到远程主机(template使用Jinjia2格式作为文件模版,进行文档内变量的替换的模块。它的每次使用都会被ansible标记为”changed”状态。)

8、copy模块

在远程主机执行复制操作文件。 – src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用”/”来结尾,则只复制目录里的内容,如果没有使用”/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。

9、user 模块与group模块

user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令

10、service 模块

用于管理服务,记得针对Centos7就不要使用这个模块了。

11、get_url 模块

该模块主要用于从http、ftp、https服务器上下载文件(类似于wget)

12、fetch模块

它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中

13、file模块

file模块主要用于远程主机上的文件操作

14、unarchive模块

用于解压文件

15、command 模块和shell

用于在各被管理节点运行指定的命令 shell和command的区别:shell模块可以特殊字符,而command是不支持