ansible 常用模块管理(超详细)

本文详细介绍了Ansible的多个核心模块,包括command、cron、user、group、copy、file、ping、service/yum、shell/script以及setup模块。内容涵盖各模块的功能、使用场景及其在Linux(如CentOS7)系统中的应用。
摘要由CSDN通过智能技术生成

前言

本文内容承接上文:https://blog.csdn.net/weixin_51486343/article/details/115393094?spm=1001.2014.3001.5501

环境:

主机名 IP地址 软件服务 操作系统
ansible 192.168.126.11 ansible CentOS7
webserver 192.168.126.12 / CentOS7
mysql 192.168.126.13 / CentOS7

ansible 内置了丰富的模块供用户使用,但是经常使用到的模块却不多,本文记录了比较常用的模块,以供大家一起学习


Ⅰ:command - 默认模块

适合使用简单的命令,无法支持"<",">","|",";","&"等符号

命令格式:
ansible [主机] [-m 模块] [-a args]

例:
ansible-doc -l		'//列出所有已安装的模块(按q退出)'
ansible-doc -s yum	'//-s列出yum模块描述信息和操作动作(按q退出)'

[root@ansible ~]# ansible 192.168.126.12 -m command -a 'date'		'//指定ip执行date命令,这里上文已做过免交互'
192.168.126.12 | CHANGED | rc=0 >>
2021年 04月 02日 星期五 10:53:51 CST
[root@ansible ~]# ansible webserver -m command -a 'date'		'//主机名与ip地址同理'
192.168.126.12 | CHANGED | rc=0 >>
2021年 04月 02日 星期五 10:54:43 CST
[root@ansible ~]# ansible mysql -m command -a 'date'
192.168.126.13 | CHANGED | rc=0 >>
2021年 04月 02日 星期五 10:55:31 CST

[root@ansible ~]# ansible all -m command -a 'date'		'//所有hosts主机执行date命令'
192.168.126.13 | CHANGED | rc=0 >>
2021年 04月 02日 星期五 10:55:59 CST
192.168.126.12 | CHANGED | rc=0 >>
2021年 04月 02日 星期五 10:55:59 CST
[root@ansible ~]# ansible all -a 'ls /'		'//若不加-m模块,则默认运行command模块'
192.168.126.13 | CHANGED | rc=0 >>
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
192.168.126.12 | CHANGED | rc=0 >>
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var

Ⅱ:cron - 定时任务模块

有两种状态(state):present表示添加,absent表示移除

例:
ansible-doc -s cron		'//-s查看cron模块信息'

[root@mysqlr .ssh]# which echo		'//在PATH变量指定的路径中搜索echo命令的位置'
/usr/bin/echo

[root@ansible ~]# ansible mysql -m cron -a 'minute="*/1" job="/usr/bin/echo hello" name="xcf cron job"'
'//指定webserver主机,-m不可省略,否则默认执行command模块'
'//-a指定参数,每分钟执行(间隔频率);执行操作;指定计划性任务名称'
'//这里注意格式,单引号与双引号的使用'
192.168.126.13 | CHANGED => {
   
    "ansible_facts": {
   
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "envs": [], 
    "jobs": [
        "xcf cron job"
    ]
}
[root@ansible ~]# ansible mysql -a 'crontab -l'		'//执行命令查看以下有无该计划性任务'
192.168.126.13 | CHANGED | rc=0 >>
#Ansible: xcf cron job
*/1 * * * * /usr/bin/echo hello

[root@mysql .ssh]# crontab -l		'//切换至mysql查看以下'
#Ansible: xcf cron job
*/1 * * * * /usr/bin/echo hello
您在 /var/spool/mail/root 中有新邮件
[root@mysql .ssh]# cat /var/spool/mail/root 		'//信息写在该邮件内,可以去查看以下,一分钟执行一次该命令'

[root@ansible ~]# ansible mysql -m cron -a 'name="xcf cron job" state=absent'
'//移除计划性任务'
192.168.126.13 | CHANGED => {
   
    "ansible_facts": {
   
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "envs": [], 
    "jobs": []
}
'//再切换至mysql查看,原先的计划性任务没了'
[root@mysql .ssh]# crontab -l
您在 /var/spool/mail/root 中有新邮件

Ⅲ:user - 用户模块

'该模块请求的是useradd,userdel,usermod三个指令'
'即创建/删除用户,设定用户所属组'

例:
ansible-doc -s user		'//-s查看user模块信息'

[root@ansible ~]# ansible mysql -m user -a 'name="test01"'		'//在mysql主机中创建用户test01'
192.168.126.13 | CHANGED => {
   
    "ansible_facts": {
   
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "comment": "", 
    "create_home": true, 
    "group": 1001, 
    "home": "/home/test01", 
    "name": "test01", 
    "shell": "/bin/bash", 
    "state": "present", 
    "system": false, 
    "uid": 1001
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值