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