ansible学习之四:常用模块

本文介绍了Ansible常用模块,包括Command、Shell、Script等。Command用于在远程主机执行命令,Shell与之类似但用shell执行。还涉及文件操作模块如Copy、Fetch、Flie,以及管理主机名、计划任务、软件包、服务、用户和组等模块的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • ansible常用模块

  • Command:在远程主机执行命令,默认模块。可忽略-m选项 ansible [主机IP或组名] -m
    command -a ‘要执行的命令’ 此命令不支持¥HOMENAME <> | ; &等符号,要用shell模块实现

  • Shell:和Command相似,用shell执行命令 ansible [主机IP或组名] -m shell -a ‘要执行的命令’
    调用bash执行命令,类似cat /tmp/stanley.md | awk -F ‘|’ ‘{print $1,$2}’
    &> /tmp/example.txt这些复杂的命令,即使用shell也可以会失败,解 决办法:写到脚本时,copy到远程,执行,再把需要的结果拉回执行命令 的机器

  • Script:运行脚本
    -a “/PATH/TO/SCRIPT_FILE” ansible [主机IP或组名]
    -m script -a [脚本文件]

  • -Copy:从服务器复制文件到客户端
    ansibel [主机IP或组名] -m copy -a “src=[服务器文件路径] dest=[客户端文件路径] owner=user mode=755 backup=yes” 如果目标存在,默认覆盖,此处指定先备份
    ansible [主机IP或组名] -m copy -a “conrent=‘文件内容’ dest=[客户端文件路径]”
    写好文件内容,直接生成目标文件

  • Fetch:从客户端取文件至服务器段,copy相反,目录可先tar
    ansible [主机IP或组名] -m fatech -a ‘src=[客户端文件路径] dest=[服务器文件路径]’

  • Flie:设置文件属性
    ansible [主机IP或组名] -m file -a “path=/root/a.sh owner=user1 mode=755”
    ansible all -m file -a ‘name=/home/f3 state=touch’#创建文件f3
    ansible all -m file -a ‘name=/home/f3 state=absent’#删除文件f3
    ansible all -m file -a ‘name=/home/dir1 state=directory’#创建dir1目录
    ansible all -m file -a ‘name=/home/dir1 state=absent’ #删除dir1目录
    ansible all -m file -a ‘src=/etc/fstab dest=/home/fstab.link state=link’#创建软连接
    ansible all -m file -a ’ dest=/home/fstab.link state=absent’#删除软连接

  • Hostname:管理主机名
    ansible [主机ip] -m hostname -a ‘name=test.hostname’#修改主机名

  • Cron:计划任务
    ansible all -m cron -a ‘minute=* weekday=2,4,6 job="/usr/bin/wall FBI warning" name=warningcron’ #设置计划任务
    ansible all -m cron -a ‘disable=yes job="/usr/bin/wall FBI warning" name=warningcron’ #禁用计划任务
    ansible all -m cron -a ‘disable=no job="/usr/bin/wall FBI warning" name=warningcron’ #启用计划任务
    ansible all -m cron -a ’ job="/usr/bin/wall FBI warning" name=warningcron state=absent’ #删除计划任务

  • Yum管理包
    ansible all -m yum -a ‘name=vsftpd’ #安装vsftpd软件
    ansible 192.168.1.83 -m yum -a ‘list=installed’#查看安装好的yum包
    ansible all -m yum -a ‘name=vsftpd state=absent’#卸载yum包
    ansible all -m shell -a ‘rpm -q vsftpd’#查看是否安装软件
    ansible all -m yum -a ‘name=dstat update_cache=yes’#更新软件缓存

  • Service:管理服务
    ansible all -m service -a “name=vsftpd state=started enabled=yes”#开启服务并设置自动启动,systemctl is-enabled vsftpd查看是否设置成功
    ansible all -m service -a “name=vsftpd state=restarted”#重启服务
    ansible all -m service -a “name=vsftpd state=stopped”#停止服务

  • User:管理用户
    ansible all -m user -a ‘name=nginx shell=/sbin/nologin system=yes home=/var/nginx groups=root,bin uid=80 comment=“nginx service”’#创建nginx用户并设置所属组,uid及描述。
    ansible all -a ‘getent passwd nginx’#检查是否创建成功
    ansible all -a ‘ls /var/nginx’ #检查是否创建成功
    ansible all -m user -a ‘name=nginx state=absent remove=yes’#删除用户

  • gruop:管理组
    ansible all -m group -a ‘name=nginx system=yes gid=80’#创建用户组
    ansible all -a ‘getent group nginx’#检查是否创建成功
    ansible all -m group -a ‘name=nginx state=absent’#删除用户组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值