Ansible9个模块

 
 
 
# 1.shell模块,可以执行任意命令
[root@m01 ~]# ansible  test -m shell -a "ifconfig | grep netmask"
172.16.1.41 | SUCCESS | rc=0 >>
        inet 10.0.0.41  netmask 255.255.255.0  broadcast 10.0.0.255
        inet 172.16.1.41  netmask 255.255.255.0  broadcast 172.16.1.255
        inet 127.0.0.1  netmask 255.0.0.0
 
172.16.1.31 | SUCCESS | rc=0 >>
        inet 10.0.0.31  netmask 255.255.255.0  broadcast 10.0.0.255
        inet 172.16.1.31  netmask 255.255.255.0  broadcast 172.16.1.255
        inet 127.0.0.1  netmask 255.0.0.0
 
[root@m01 ~]# ansible  test -m shell -a "rpm -qa vsftpd"
 
 
# 2.copy模块
[root@m01 ~]# ansible  test -m copy -a "src=/etc/hosts dest=/tmp/123.com owner=root group=root mode=0555"
 
[root@m01 ~]# ansible  test -m copy -a "src=/etc/hosts dest=/tmp/123.com owner=root group=root mode=0555 backup=yes"
# 直接向远端文件内写入数据信息,并且会覆盖远端文件内原有数据信息
[root@m01 ~]# ansible  test -m copy -a "content="123" dest=/opt/ test"
 
src           --- 推送数据的源文件信息
dest          --- 推送数据的目标路径
backup        --- 对推送传输过去的文件,进行备份
content       --- 直接批量在被管理端文件中添加内容
group         --- 将本地文件推送到远端,指定文件属组信息
owner         --- 将本地文件推送到远端,指定文件属主信息
mode          --- 将本地文件推送到远端,指定文件权限信息
 
 
# 3.script模块
# 本地运行模块,等同于在远程执行,不需要将脚本文件进行推送目标主机执行
[root@m01 ~]# ansible  test -m script -a "/server/scripts/yum.sh"
# 4.yum模块
[root@m01 ~]# ansible  test -m yum -a 'name=httpd state=latest'
[root@m01 ~]# ansible  test -m yum -a 'name=httpd state=removed'
[root@m01 ~]# ansible  test -m yum -a 'name=httpd state=installed'
name    ---指定要安装的软件包名称
state   ---指定使用yum的方法
    installed,present   ---安装软件包
    removed,absent      ---移除软件包
    latest               ---安装最新软件包 
 
 
# 5.file模块
# 创建文件
[root@m01 ~]# ansible  test -m file -a "path=/opt/tttttt owner=root group=root mode=0666 state=touch"
# 创建目录
[root@m01 ~]# ansible  test -m file -a "path=/opt/tt_d owner=root group=root mode=0666 state=directory"
# 创建连接文件
[root@m01 ~]# ansible  test -m file -a "src=/opt/tttttt dest=/root/tt owner=root group=root state=link"
# 删除文件和目录
[root@m01 ~]# ansible  test -m file -a "path=/opt/tttttt state=absent"
[root@m01 ~]# ansible  test -m file -a "path=/opt/tt_d state=absent"
- file:
path        --- 指定远程主机目录或文件信息
state       --- 
    directory   --- 在远端创建目录
    touch       --- 在远端创建文件
    link        --- link或hard表示创建链接文件
    absent      --- 表示删除文件或目录
    mode        --- 设置文件或目录权限
    owner       --- 设置文件或目录属主信息
    group       --- 设置文件或目录属组信息
 
 
# 6.service模块
[root@m01 ~]# ansible  test -m service -a "name=rsyncd state=started enabled=yes"
name        --- 定义要启动服务的名称
state       --- 指定服务状态是停止或是运行,停止和运行指令要写成过去时
    started     --- 启动
    stopped     --- 停止
    restarted   --- 重启
    reloaded    --- 重载
enabled     --- 是否让服务开启自启动
 
# 7.user模块
[root@m01 ~]# ansible  test -m user -a 'name=www_www uid=777 group=www_www password="$1$PzgnrXcO$e3UIkmVOoz7NPwgACyf8y0"'
name        --- 用户名
uid --- 指定用户uid
group --- 指定用户属于哪个组
password --- 指定用户密码(密码必须是 通过echo "bgx"| openssl passwd -1 -stdin 生成)
 
 
 
# 8.mount模块
[root@m01 ~]# ansible  test -m mount -a "path=/backup src=10.0.0.31:/data fstype=nfs opts=defaults,noatime state=mounted"
 
mounted     ---挂载设备,并将配置写入/etc/fstab
unmounted   ---卸载设备,不会清除/etc/fstab写入的配置
absent      ---卸载设备,会清理/etc/fstab写入的配置
 
 
 
9.cron模块
# 正常使用crond服务
[root@m01 ~]# crontab -l
* * * * *  /bin/sh /server/scripts/yum.sh
 
# 使用ansible添加一条定时任务
[root@m01 ~]# ansible  test -m cron -a "minute=* hour=* day=* month=* weekday=*  job='/bin/sh /server/scripts/test.sh'"
[root@m01 ~]# ansible  test -m cron -a "job='/bin/sh /server/scripts/test.sh'"
 
# 设置定时任务注释信息,防止重复,name设定
[root@m01 ~]# ansible  test -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh'"
 
# 删除相应定时任务
[root@m01 ~]# ansible  test -m cron -a "name='ansible cron02' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' state=absent"
 
# 注释相应定时任务,使定时任务失效    
[root@m01 scripts]# ansible  test -m cron -a "name='ansible cron01' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' disabled=no"
 
 
 
 
 
 
 
 
 
 
 
 
 
# 正常使用crond服务
[root@m01 ~]# crontab -l
* * * * *  /bin/sh /server/scripts/yum.sh
 
# 使用ansible添加一条定时任务
[root@m01 ~]# ansible  test -m cron -a "minute=* hour=* day=* month=* weekday=*  job='/bin/sh /server/scripts/test.sh'"
[root@m01 ~]# ansible  test -m cron -a "job='/bin/sh /server/scripts/test.sh'"
 
# 设置定时任务注释信息,防止重复,name设定
[root@m01 ~]# ansible  test -m cron -a "name='cron01' job='/bin/sh /server/scripts/test.sh'"
 
# 删除相应定时任务
[root@m01 ~]# ansible  test -m cron -a "name='ansible cron02' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' state=absent"
 
# 注释相应定时任务,使定时任务失效    
[root@m01 scripts]# ansible  test -m cron -a "name='ansible cron01' minute=0 hour=0 job='/bin/sh /server/scripts/test.sh' disabled=no"
 
创建时间:2021-09-15 21:18
浏览量:0