美文网首页
Ansible常用功能模块整理

Ansible常用功能模块整理

作者: 张新雨有点胖噢 | 来源:发表于2019-08-24 17:23 被阅读0次

命令类型模块

(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下 并设置开机自动挂载

相关文章

网友评论

      本文标题:Ansible常用功能模块整理

      本文链接:https://www.haomeiwen.com/subject/tdugsctx.html