Linux运维-day44-综合架构-ansible常用模块整理

ansible查看帮助方法

ansible-doc copy:查询指定某个模块参数用法信息
ansible-doc -l:查看所有模块说明信息
官网查询帮助:https://docs.ansible.com/
注:参数上带required表示这个参数必须要有
调试,打印出所有任务:ansible-playbook 剧本名 --list-tasks
从指定任务执行:ansible-playbook 剧本名 --start-at-task=mkdir

1、command(命令模块)----默认模块,可以省略
[root@m01 ~]# ansible oldboy -m command -a 'hostname'
172.16.1.31 | CHANGED | rc=0 >>
nfs01
172.16.1.7 | CHANGED | rc=0 >>
web01
172.16.1.41 | CHANGED | rc=0 >>
backup
2、shell(命令模块):支持特殊符号、支持脚本
\\\批量更新backup、web01、nfs01三台主机的时间
[root@m01 ~]# ansible all -m shell -a 'ntpdate ntp1.aliyun.com'
172.16.1.41 | CHANGED | rc=0 >>
28 May 20:29:20 ntpdate[10115]: step time server 120.25.115.20 offset 2.786290 sec
172.16.1.31 | CHANGED | rc=0 >>
28 May 20:29:20 ntpdate[9550]: step time server 120.25.115.20 offset 2.787557 sec
172.16.1.7 | CHANGED | rc=0 >>
28 May 20:29:21 ntpdate[9685]: step time server 120.25.115.20 offset 2.787166 sec
[root@m01 ~]# 

\\\检查backup、web01、nfs01三台主机的时间
[root@m01 ~]# ansible all -m shell -a 'date'
172.16.1.31 | CHANGED | rc=0 >>
Tue May 28 20:30:38 CST 2019
172.16.1.7 | CHANGED | rc=0 >>
Tue May 28 20:30:38 CST 2019
172.16.1.41 | CHANGED | rc=0 >>
Tue May 28 20:30:38 CST 2019
[root@m01 ~]# 
3、copy(复制模块)

参数:
 src:源,文件从哪里来
 dest:目标,复制到远程哪里去
 owner:所有者
 group:用户组
 mode:权限
 backup:是否备份,对远端已有的数据
 content:向被批量推送的文件中添加内容,与src冲突,只能二选一

\\将管理机/etc/hostname推送到backup、web01、nfs01三台主机的/tmp/下
[root@m01 ~]# ansible all -m copy -a 'src=/etc/hostname dest=/tmp/hostname'

\\检查是否成功
[root@m01 ~]# ansible all -m shell -a 'cat /tmp/hostname'
172.16.1.41 | CHANGED | rc=0 >>
m01
172.16.1.7 | CHANGED | rc=0 >>
m01
172.16.1.31 | CHANGED | rc=0 >>
m01
[root@m01 ~]# 
4、scripts(脚本模块):先把脚本传输到服务器,然后执行
[root@m01 ~]# #ansible all  -m script  -a "/server/scripts/yum.sh"
[root@m01 ~]# ansible all -a 'rpm -qa ipvsadm'
 [WARNING]: Consider using the yum, dnf or zypper module rather than running 'rpm'.  If you need to use command because
yum, dnf or zypper is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in
ansible.cfg to get rid of this message. \\就是告诉你安装命令yum也可以支持

172.16.1.41 | CHANGED | rc=0 >>
ipvsadm-1.27-7.el7.x86_64

172.16.1.7 | CHANGED | rc=0 >>
ipvsadm-1.27-7.el7.x86_64
5、yum(软件安装模块)

参数
 name:指定要安装的软件包名称
 state:指定使用yum的方法
   present:安装
   absent:关闭或删除
   latest:更新

\\\批量更新backup、web01、nfs01这三台机器的tree命令
[root@m01 ~]# ansible all -m yum -a "name=tree state=latest"
6、file(文件配置模块):相当于touch、mkdir、ln、rm,不支持通配符

参数:
 path:指定路径或文件名**
 state:指定文件创建的类型
   directory:在远端创建目录
   touch:在远端创建文件**
   link:link或hard表示创建链接文件
   absent:删除文件或目录
 mode:设置文件或目录权限
 owner:设置文件或目录属主信息
 group:设置文件或目录属组信息

\\\批量创建目录
[root@m01 ~]# ansible all -m file  -a 'path=/tmp/a   state=directory mode=555 owner=root group=root '
\\\批量创建文件
[root@m01 ~]# ansible all -m file -a "path=/data/a/b/c/oldboy.txt state=touch"
7、serivce(服务模块):关闭、开启、重启

参数
name:指定要启动服务的名称
state:指定服务启动状态
  started:启动服务
  stopped:停止服务
  restarted:重启服务
  reloaded:重载服务
enabled:开机自启(yes或no)

ansible all -m service -a 'name=crond state=started enabled=yes'
8、group(组模块)

name:指定创建的组名
gid:指定组的gid
state
  absent:移除远端主机的组
  present:创建远端主机的组(默认)

\\\创建oldgirl的用户组
[root@m01 ~]# ansible all -m group -a 'name=oldgirl gid=888'
9、user(用户模块)

参数
 name
 uid
 group
 shell:指定命令解释器
 create_home:是否创建家目录

\\\创建用户oldgirl指定uid和gid 888,不创建家目录也不允许登陆
ansible all -m user -a 'name=oldgirl uid=888 group=oldgirl shell=/sbin/nologin create_home=no '

\\\检查
[root@m01 ~]# ansible all -m shell -a 'grep "oldgirl" /etc/passwd'
172.16.1.41 | CHANGED | rc=0 >>
oldgirl:x:888:888::/home/oldgirl:/sbin/nologin
172.16.1.31 | CHANGED | rc=0 >>
oldgirl:x:888:888::/home/oldgirl:/sbin/nologin
172.16.1.7 | CHANGED | rc=0 >>
oldgirl:x:888:888::/home/oldgirl:/sbin/nologin
[root@m01 ~]#
10、cron(定时任务模块)

参数:
name:指定定时任务的注释
minute:分钟(0-59,/2)
month:月份(1-12,/2)
job:指定定时任务的命令或脚本
hour:小时(0-23,/2)
day:天(0-31,/2)
weekday:分钟(0-6,*)
state:
  present:添加定时任务
  absent:删除定时任务

#在backup和nfs01机器中添加一个定时任务每5分钟同步系统时间

\\正常定时任务格式:
*/5 * * * * /sbin/ntpdate ntp1.aliyun.com>/dev/null 2>&1

\\ansible定时任务模块格式:
ansible oldboy -m cron -a 'name="sync time" minute="*/5" job="/usr/sbin/ntpdate ntp1.aliyun.com >/dev/null  2>&1" state=present'
11、mount(挂载模块)

注:测试这个挂载模块之前,一定要先在nfs01上配置好nfs

参数:
 fstype:文件系统类型
 src:source 源
 path:挂载点
 opts:挂载参数,defaults(默认)
 state:状态(临时、永久)
   present:开机挂载,仅将挂载设备写入/etc/fstab
   mounted:挂载设备,并将配置写入/etc/fstab
   unmounted:卸载设备,不会清除/etc/fstab写入的配置
   absent:卸载设备,会清除/etc/fstab写入的配置

#将nfs01机器上的共享目录/nfs挂载到web01机器上的/upload

\\正常mount挂载命令:
mount -t nfs 172.16.1.31:/data /web01

\\ansible中mount模块命令
ansible 172.16.1.7 -m mount -a 'src=172.16.1.31:/nfs path=/upload fstype=nfs state=mounted'
12、archive(打包压缩模块)

参数:
 path:要打包的文件或目录(绝对路径)
 dest:打包到哪里

- name: tar /etc
      archive:
        path: /etc
        dest: "{{ dirs }}/{{ ipaddr.stdout }}/etc-{{ time.stdout }}.tar.gz" 

后续遇到在补充……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值