命令类型模块
(1) Command 默认模块 批量执行命令
这个模块可以直接在远程主机上执行命令,并将结果返回本主机。注意,该命令不支持 | 管道等符号命令
语法: ansible buckup -m command -a “hostname -i”
Backup
指定组
-m
指定模块
-a
指定具体用模块做什么
PS : command 不加便是默认指定他 局限性很多
(2) Shell 通用万能模块 批量执行命令
shell替代command执行命令
语法: ansible backup -m shell -a “cd /tmp;pwd”
代替Command支持更多的命令,符号也进行识别
(3) Script 脚本模块 批量运行脚本
在远程执行本地的脚本
- 使用script有两步操作
(1) 建立脚本文件
(2) 使用模块执行脚本
语法 :ansible backup -m script -a “脚本路径”
直接所有被管理端都执行 不用别的命令辅助
(4) 文件类型模块copy 可以将管理的数据进行分发,移动管理端数据
语法 : ansiboe oldboy -m copy -a "src=/tmp/xx.txt dest=/etc/ mode=600 owner=属主 group=属组"
src= 指定管理端分发数据的路径
dest= 指定被管理端数据存放的地点
mode= 指定文件传输过去后权限信息
owner= 指定数据传输过去后的属主信息
group= 指定数据传输过去后的属组信息
remote_src=yes 指定元的路径信息 yes 从被管理端进行读取
例子 : ansible backup -m copy -a "rsc=/root/123.txt dest=/tmp/ remote_src=yes"
content='1' 可以直接不在管理端创建文件,对文件进行分发,可直接编辑文件简单内容信息
例子 : ansible backup -m copy -a "content='123456' dest=/tmp/123.txt"
(不再管理端创建文件,创建文件,在被管理端创建文件 并编辑简单的内容)
validate='xx命令 %s' 调取服务命令 验证传输过去服务配置文件的完整性 (验证自身)
例子 : ansible backup -m "src=/root/1.txt dest=/etc/xxx validate='xx命令 参数 %s'"
(5) 文件类型模块fetch 进行数据拉取操作
语法 : ansible backup -m fetch -a “src=/root/789.txt dest=/root/”
src= 指定远程主机需要拉取数据的位置
dest= 指定数据拉取保存到本地管理主机的什么位置
(6) 文件相关模块 file 删除/创建 修改文件数据属性
参数:
path= 指定要操作的远程主机数据路径信息
mode= 修改远程主机指定文件/目录的权限信息
owner= 修改远程主机指定文件的属主信息
group= 修改远程主机指定文件的属组信息
recurse= 是否递归修改属主/属主(yes / no)
force=yes" 强制创建软连接
state= 指定文件状态信息
directory(创建目录)
touch (创建文件)
link (创建软连接)
hard (创建硬链接)
absent (删除文件/目录)
file (查看指定文件/目录是否存在)
语法: ansible backup -m file -a “path=/backup/123 mode=755 owner=xx state=touch
(创建文件 权限为755 属主为xx)
ansible backup -m file -a “src=/backup/123 path=/backup/abc state=link
(创建软连接 src指定软连接源文件 path指定链接文件 state创建连接)
(7) 用户相关user模块 创建/删除用户
参数:
name= 指定用户名
create_home= 是否创建用户家目录 (yes / no)
shell= 是否能登陆系统 默认值为可以登陆 (设置为/sbin/nologin不可登陆)
password= 指定用户密码(注意需要以密文形式书写)
uid= 指定uid号
state= 默认值为presrnt(创建用户) 可设置为ansent(删除用户)
语法:
(创建用户)
ansible 172.16.1.41 -m user -a “name=test password=$6$IQhh.egT4ow2dzmd$fk9W1.J4q1ArQ8nykkhh5A0waFbgU1Qa4sUdNm42.oYSpSMmIIl0262cSDg1Q6Ph8p3rnqHOs372A.GzD11.w/”
(创建虚拟用户)
ansible 172.16.1.41 -m user -a “name=rsync create_home=no shell=/sbin/nologin”
利用python生成密文信息
(1) 下载python-pip下载工具 yum install -y python-pip
(2) 利用pip工具下载python程序包 pip install -y passlib
(3) 生成密文信息
python -c "from passlib.hash import sha512_crypt; import getpass; print(sha512_crypt.using(rounds=5000).hash(getpass.getpass()))"
Password: <--要生成的密码
(生成的密文信息)
$6$IQhh.egT4ow2dzmd$fk9W1.J4q1ArQ8nykkhh5A0waFbgU1Qa4sUdNm42.oYSpSMmIIl0262cSDg1Q6Ph8p3rnqHOs372A.GzD11.w/
(8) 用户相关 group 创建/删除用户组
参数:
name= 指定用户组名
gid= 指定用户组gid号码
state= 默认为present(创建) 指定为ansent(为删除)
语法: ansible backup -m group -a “name=test gid=1001”(创建gid号为1001的test用户组)
(9) 软件相关 yum模块 安装/卸载软件
参数:
name= 指定需要安装的软件名
state= 指定状态信息
installed (安装软件)
ansent (卸载软件)
语法: ansible backup -m yum -a “name=rsyncd state=ansent” (删除软件)
(10) 系统相关 service 指定服务运行状态
参数:
name= 指定管理的服务名称
enabled (指定服务是否开机自启动 yes/no)
state= 指定服务状态信息
stopped (停止服务)
started (启动服务)
restarted (重启服务)
reloaded (平滑重启服务)
语法: ansible backup -m service -a “name=rsyncd state=reloaded enabled=yes”
(指定rsync服务平滑重启 开启开机自启动)
(11) 系统相关 cron 批量管理定时任务
参数:
minute= 指定定时任务的分钟信息 (0-59)默认为*
hoar= 指定定时任务的小时信息 (0-23) 默认为*
day= 指定定时任务日期信息 (1-31) 默认为*
month= 指定定时任务月份信息(1-12) 默认为*
weekday= 指定定时任务星期信息(0-6) 默认为*
job= 指定定时任务信息
name=指定定时任务注释信息
disabled= 指定是否注释掉指定定时任务(yes/no)
state= 删除定时任务
语法:
ansible backup -m cron -a “name=备份任务 minute=1 hoar=0 job=命令信息”
(设置定时任务)
ansible backup -m cron -a “name=备份任务 minute=1 hoar=0 job=命令信息 disabled=yes”
(注释指定定时任务 注意要写全定时任务具体信息)
ansible backup -m cron -a “name=备份任务 state=absent”
(删除指定定时任务 只需注释信息即可)
Ps:尽量注释 以免工作找后账
(12) 系统相关 mount 批量挂载/卸载操作
参数:
src= 指定存储设备信息
path= 指定挂载点
fstype= 挂载类型
state= 指定是否挂载
mounted(临时和永久挂载即设置开机自动挂载)
absent (临时和永久卸载即设置取消开机自动挂载)
unmounted(临时卸载)
语法:
ansibl backup -m mount -a “src=/dev/sdb1 path=/tmp state=mounted”
设置backup组所有服务器的sdb1都挂载到tmp下 并设置开机自动挂载
网友评论