天天看点

Ansible

命令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

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

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

这个模块不需要远程系统上的python,就像脚本模块一样。此模块也支持windows目标。

这个模块是redhat / centos作为远端节点的os的时候,用的最多的。yum是啥就不多说了,redhat / centos包管理工具

4丶apt模块

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

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

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

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

在远程主机执行复制操作文件。

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

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

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

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

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

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

用于解压文件

用于在各被管理节点运行指定的命令

shell和command的区别:shell模块可以特殊字符,而command是不支持