1.ping模块
ping模块,主要用于判断远程客户端是否在线,用于ping自己服务器,返回值是changed、ping
使用Ansible ping服务器状态,代码为ansible -k all -m pingnode
2.Ansible command模块是Ansible默认模块,主要用于执行Linux基础命令,能够执行远程服务器命令执行、任务执行等操做。
但command模块不支持变量、重定向、管道符等,这些操做须要用shell模块执行
command模块使用详解:python
chdir:执行命令前,切换到目录 creates:当该文件存在时,不执行该步骤 executable:切换shell来执行命令,须要使用命令的绝对路径 free_from:须要执行的脚本,通常使用Ansible的-a参数代替。 removes:当该文件不存在时,不执行该步骤 warn:若是在ansible.cfg中存在告警,若是设定了false,不会告警该行
3.Ansible copy模块主要用于文件或者目录复制,支持文件、目录、权限、用户组功能
copy模块使用详解:shell
src:Ansible端源文件或者目录,空目录不复制 content:用来替代src,用于将指定文件的内容复制到远程文件内 dest:客户端目标目录或者文件,须要绝对路径 backup:复制以前,先备份远程节点上的原始文件 directory_mode:用于复制目录,新建的文件会被复制,而旧的不会被复制 follow:支持link文件复制 force:覆盖远程主机不一致的内容 group:设定远程主机目录的组名 mode:设定远程主机文件及目录的权限 owner:设定远程主机目录的用户名
4.Ansible yum模块主要用于软件的安装、升级、卸载,支持rpm软件包的管理
yum模块使用详解:缓存
conf_file:设置远程yum执行时所依赖的yum配置文件 disable_gpg_check:安装软件包以前是否检查gpg key name:须要安装的软件名称,支持软件组安装 update_cache:安装软件以前更新缓存 enablerepo:指定repo源名称 skip_broken:跳过异常软件节点 state:软件包状态,包括installed、present、latest、absent、removed present, installed是指安裝套件,而latest指安裝最新的套件,也就是使用 yum mirror 上最新的版本。 absent, removed 没有什么区别
5.Ansible user模块主要用于操做系统用户、组、权限、密码等操做
user模块使用详解:bash
system:默认建立为普通用户,为yes则建立系统用户 append:添加一个新的组 comment:添加描述信息 createhome:给用户建立家目录 force:强制删除用户 group:建立用户主组 groups:将用户加入组或者附属组添加 home:指定用户的家目录 name:表示状态,是否create、remove、modify password:指定用户的密码,为加密密码 remove:删除用户 shell:设置用户的shell登陆环境 uid:设置用户ID update_password:修改用户密码 state:用户状态,默认为present,表示新建用户
6. setup模块,主要用于获取主机信息,在playbooks里常常会用到的一个参数gather_facts就与该模块相关。setup模块下常常使用的一个参数是filter参数,具体使用示例以下(因为输出结果较多,这里只列命令不写结果):服务器
[root@361way ~]# ansible 10.212.52.252 -m setup -a 'filter=ansible_*_mb' //查看主机内存信息[root@361way ~]# ansible 10.212.52.252 -m setup -a 'filter=ansible_eth[0-2]' //查看地接口为eth0-2的网卡信息[root@361way ~]# ansible all -m setup --tree /tmp/facts //将全部主机的信息输入到/tmp/facts目录下,每台主机的信息输入到主机名文件中(/etc/ansible/hosts里的主机名)app
7. file模块主要用于远程主机上的文件操做,file模块包含以下选项:ide
force:须要在两种状况下强制建立软连接,一种是源文件不存在但以后会创建的状况下;另外一种是目标软连接已存在,须要先取消以前的软链,而后建立新的软链,有两个选项:yes|noui
group:定义文件/目录的属组加密
mode:定义文件/目录的权限
owner:定义文件/目录的属主
path:必选项,定义文件/目录的路径
recurse:递归的设置文件的属性,只对目录有效
src:要被连接的源文件的路径,只应用于state=link的状况
dest:被连接到的路径,只应用于state=link的状况
state: directory:若是目录不存在,建立目录
file:即便文件不存在,也不会被建立
link:建立软连接
hard:建立硬连接
touch:若是文件不存在,则会建立一个新的文件,若是文件或目录已存在,则更新其最后修改时间
absent:删除目录、文件或者取消连接文件
使用示例:
ansible test -m file -a "src=/etc/fstab dest=/tmp/fstab state=link"ansible test -m file -a "path=/tmp/fstab state=absent"ansible test -m file -a "path=/tmp/test state=touch"
8.service模块
用于管理服务
9.cron模块
用于管理计划任务
10.yum模块
使用yum包管理器来管理软件包,其选项有:
config_file:yum的配置文件
disable_gpg_check:关闭gpg_check
disablerepo:不启用某个源
enablerepo:启用某个源
name:要进行操做的软件包的名字,也能够传递一个url或者一个本地的rpm包的路径
state:状态(present,absent,latest)
11.user模块与group模块
user模块是请求的是useradd, userde
12.synchronize模块
使用rsync同步文件,其参数以下:
archive: 归档,至关于同时开启recursive(递归)、links、perms、times、owner、group、-D选项都为yes ,默认该项为开启
13.get_url 模块
该模块主要用于从http、ftp、https服务器上下载文件(相似于wget),主要有以下选项:
sha256sum:下载完成后进行sha256 check;
timeout:下载超时时间,默认10s
url:下载的URL
url_password、url_username:主要用于须要用户名密码进行验证的状况
use_proxy:是事使用代理,代理需事先在环境变动中定义
14.user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令。
15.script模块 [在远程主机执行主控端的shell/python脚本 ] (使用相对路径)
[root@node1 ansible]# ansible testservers -m script -a '/etc/ansible/test.sh
16. shell模块 [执行远程主机的shell/python脚本]
[root@node1 ansible]# ansible testservers -m shell -a 'bash /root/test.sh'
17. raw模块 [相似于command模块、支持管道传递][root@node1 ansible]# ansible testservers -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print \$2}' |awk -F: '{print \$2}'"