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)