ansible常用基础模块

仅罗列出常用的模块,更多模块请到ansible官方查看

https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html

 

一、命令模块

1 ping模块

主要用于判断远程客户端是否在线

格式:
ansible 主机组名 -m ping

 

2 command模块
该模块为ansible的默认模块,支持所有远程权限范围内的命令,不支持管道符号(|)

格式:
ansible 主机组名 -m command -a 'command'

 

3 shell模块
和command模块一样,且支持管道符号(|)

格式:
ansible 主机组名 -m shell -a 'command'

 

二、文件模块
1 copy模块
从ansible主机上拷贝文件或目录到被管理机器上,类似scp功能

格式:
ansible 主机组名 -m copy -a 'src=/root/test.sh dest=/root/ owner=root group=root mode=0755' 

参数说明:
src       ansible主机上的文件或目录
dest   指定被管理机器的目录
owner  指定文件或目录传过去的所有者
group  指定文件或目录传过去的所属组
mode   指定文件或目录传过去的权限

其中:
如果src是文件,dest是目录,则src会被拷贝至dest目录下,如果dest是文件,则会被src替换
如果src是目录,dest也必须为目录,若dest不存在,则dest会被当成目录创建

 

2 file模块
管理文件和目录以及属性

格式:
创建目录:
ansible 主机组名 -m file -a 'name=/data mode=644 state=directory'

创建普通文件:
ansible 主机组名 -m file -a 'dest=/data/test.txt mode=777 state=touch'

删除文件或目录:
ansible 主机组名 -m file -a 'path=/data/abc state=absent'

创建一个软连接:
ansible 主机组名 -m file -a 'src=/data/test.txt dest=/root/test state=link'

参数说明:
name(dest|path)    指定目录或文件名
mode    指定创建后文件或目录的权限
state    指定类型:
    directory     如果目录不存在则创建该目录
    touch        创建普通文件
    absent        删除文件或目录
    link        创建软链接
owner        指定所属用户 
group        指定所属组

 

3 script模块
在被管理的机器上执行管理机器上的脚本,脚本不会被拷贝到被管理主机上

格式:
ansible 主机组名 -m script -a '/root/test.sh'

 

4 fetch模块
从被管理主机上拷贝文件到ansible主机,和copy模块用法类似

格式:
ansible 主机组名 -m fetch -a 'src=/root/test.sh dest=/root/'

参数说明;
src    被管理主机上的文件,必须是文件
dest   ansible主机存放的路径

 

三、安装模块
1 yum模块
管理被管理机器上的rpm包

格式:
ansible 主机组名 -m yum -a 'name=mysql state=installed'

参数说明:
name      指定要安装的rpm包名称
state      指定状态
    installed(present)     安装软件包
    absent(removed)         卸载软件包

 

四、定时模块
1 cron模块
修改被管理机的crontab任务

格式:
ansible 主机组名 -m cron -a "name='check dirs' hour='5,2' job='ls -alh > /dev/null'"

参数说明:
name     指定时间任务名称(加备注)
hour     指定时间任务周期(minute,hour,day,month,weekday)
job     指定任务内容
state    指定状态
    absent(present)      取消指定时间任务

 

五、挂载模块
1 mount模块
实现被管理机的分区挂载(添加至/etc/fstab文件)

格式:
ansible 主机组名 -m mount -a 'name=/yum src=/dev/sr0 fstype=iso9660 opts=ro state=mounted'

参数说明:
name     指定挂载目录
src     指定挂载源
fstype     指定挂载源的文件系统类型
opts     指定挂载后的权限
state     指定状态
    present        只修改fstab文件内容,不做挂载操作
    mounted        如果指定的挂载点没有挂载,则挂载,且将会写入fstab文件
    absent        取消挂载,并将挂载目录删除,还会删除fstab文件中对应内容
    unmounted    取消当前挂载的内容,而不修改fstab文件内容

 

六、服务模块
1 service模块
管理被管理机器上的服务(启动、停止、重启等)

格式:
ansible 主机组名 -m service -a "name=nginx state=stopped"    

参数说明:
name        指定服务名
state       指定需要执行的操作
stopped     停止
started     启动
restarted   重启
reloaded    平滑重启

 

七、用户模块
1 user模块
管理被管理机器上的用户

格式:
ansible 主机组名 -m user -a "name=ninmu shell=/bin/sh home=/home/munin group=8888 uid=8888 comment='useradd ninmu'"

参数说明:
name      指定用户名
shell     指定shell类型
home      指定用户家目录
group     指定用户所属组(前提是指定的组已经存在)
uid       指定用户uid
comment   指定用户描述项
remove    删除用户时是否删除家目录(remove=yes)
state     指定状态
    absent    删除用户

 

八、解压缩模块
1 unarchive模块
将ansible主机上的归档文件或压缩文件释放至指定被管理机上

格式:
将ansible主机上的压缩文件释放至被管理机:
ansible 主机组名 -m unarchive -a 'src=/root/test.tar.gz dest=/root/'

释放被管理机器上的压缩文件:
ansible 主机组名 -m unarchive -a 'src=/root/local.tar.gz dest=/usr/src/ remote_src=yes'

参数说明:
src        指定要解压的压缩或归档文件名
dest       指定要将文件释放到哪里
owner      指定释放后文件所属用户
group      指定释放后文件所属组
mode       指定释放后文件权限
remote_src     需要释放的文件在被管理机器端时使用(remote_src=yes)

 

posted @ 2020-07-05 12:10  junffzhou  阅读(306)  评论(0编辑  收藏  举报