命令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是不支持