ansible模块介绍(一)
ansible原理
ansible是一个通过远程进行批量部署,批量配置,批量执行命令的工具,使用python进行编写,通过ssh协议远程控制主机
copy模块
将文件批量远程复制到主机上
参数:
src:ansible主机的文件路径
dest:复制到目标主机的路径
owner:属主
group:属组
backup:如果目标主机文件存在是否对原文件进行备份,yes进行备份
示例:
ansible change -m copy -a'src=/root/file.yml dest=/root owner=root group=root mode=750 backup=yes'
注意:如果目标路径不存在的话,那么将不会进行传输
user模块
建立、删除用户
参数:
name:建立的用户名称
group:建立的用户属组
create_home:是否创建家目录
state:用户状态,present为建立,absent为删除
home:指定的家目录
uid:指定uid
password:密码,注意要先将明文密码生成密文形式:echo 'nginx@123' | openssl passwd -1 -stdin
remove:是否删除家目录,yes为删除,与state=absent搭配使用
shell:用户状态,/bin/bash /sbin/nologin
move_home:更改家目录,需home设置指定路径
示例:
建立用户
ansible change -m user -a 'name=nginx state=present create_home=yes home=/nginx password="$1$L4IBvsNY$xL87DZprogQIAW8oB5/iB1" uid=1020'
删除用户
ansible change -m user -a 'name=nginx state=absent remove=yes'
用于远程解压tar格式的压缩文件
creates:设定解压后的文件名,如果该文件已存在,则忽略执行
copy:设置为yes,将压缩包远程复制到目标主机后进行解压,设置为no,在远程主机上寻找压缩包并进行解压,默认为yes
src:压缩文件原路径,这个路径可以是ansible主机上的路径,也可以是远程主机的路径,如果是远程主机的路径,那么需要将copy设置为no
remote_src:设置为no,不在远程主机上寻找压缩文件,设置为yes,在远程主机寻找压缩文件,与copy设置互斥,如果设置了copy那么该参数不用设置,默认为no
dest:解压文件在远程主机的路径
mode:解压后的文件权限
exec:需要排除的目录、文件
owner:解压后的属主
group:解压后的属组
示例:
ansible change -m unarchive -a'copy=yes src=/root/nginx-1.20.2.tar.gz dest=/root mode=750 owner=nginx group=nginx'