运维必备技能ansible(四)

本文详细介绍了Ansible中的fetch模块用于文件同步,user模块管理用户账户,group模块组织用户组,以及cron模块设置定时任务。通过实例演示了这些模块的使用和注意事项。

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


一、ansible模块

1.fetch模块

fetch模块与copy模块类似,但作用相反。用于把远程机器的文件拷贝到本地。

第1步: 在两台被管理机上分别创建一个同名文件(但内容不同)

web1# echo web1   > /tmp/1.txt
web2# echo web2   > /tmp/1.txt

第2步: 从master上fecth文件(因为group1里有2台机器,为了避免同名文件文件冲突,它使用了不同的目录)

master# ansible group1  -m fetch -a 'src=/tmp/1.txt dest=/tmp/'
10.1.1.12 | CHANGED => {
    "changed": true, 
    "checksum": "d2911a028d3fcdf775a4e26c0b9c9d981551ae41", 
    "dest": "/tmp/10.1.1.12/tmp/1.txt", 	10.1.1.12的在这里
    "md5sum": "0d59da0b2723eb03ecfbb0d779e6eca5", 
    "remote_checksum": "d2911a028d3fcdf775a4e26c0b9c9d981551ae41", 
    "remote_md5sum": null
}
10.1.1.13 | CHANGED => {
    "changed": true, 
    "checksum": "b27fb3c4285612643593d53045035bd8d972c995", 
    "dest": "/tmp/10.1.1.13/tmp/1.txt", 	10.1.1.13的在这里
    "md5sum": "cd0bd22f33d6324908dbadf6bc128f52", 
    "remote_checksum": "b27fb3c4285612643593d53045035bd8d972c995", 
    "remote_md5sum": null
}

第3步: 先删除上面fetch过来的, 然后尝试只fetch其中一台机器的,也会使用名称来做子目录区分

master# rm /tmp/10.1.1.* -rf

master# ansible 10.1.1.12  -m fetch -a 'src=/tmp/1.txt dest=/tmp/'
10.1.1.12 | CHANGED => {
    "changed": true, 
    "checksum": "d2911a028d3fcdf775a4e26c0b9c9d981551ae41", 
    "dest": "/tmp/10.1.1.12/tmp/1.txt", 	只fetch一个,也会这样命名
    "md5sum": "0d59da0b2723eb03ecfbb0d779e6eca5", 
    "remote_checksum": "d2911a028d3fcdf775a4e26c0b9c9d981551ae41", 
    "remote_md5sum": null
}

注意: fetch模块不能从远程拷贝目录到本地

2.user模块

user模块用于管理用户账号和用户属性。

创建aaa用户,默认为普通用户,创建家目录

master# ansible group1 -m user -a ‘name=aaa state=present’

创建bbb系统用户,并且登录shell环境为/sbin/nologin

master# ansible group1 -m user -a ‘name=bbb state=present system=yes  shell="/sbin/nologin"

创建ccc用户, 使用uid参数指定uid, 使用password参数传密码

master# echo 123456 | openssl passwd -1 -stdin
$1$DpcyhW2G$Kb/y1f.lyLI4MpRlHU9oq0

下一句命令注意一下格式,密码要用双引号引起来,单引号的话验证时会密码不正确
master# ansible group1 -m user -a 'name=ccc uid=2000 state=present password="$1$DpcyhW2G$Kb/y1f.lyLI4MpRlHU9oq0"'

创建一个普通用户叫hadoop,并产生空密码密钥对

master# ansible group1 -m user -a 'name=hadoop generate_ssh_key=yes'

删除aaa用户,但家目录默认没有删除

master# ansible group1 -m user -a 'name=aaa state=absent'

删除bbb用户,使用remove=yes参数让其删除用户的同时也删除家目录

master# ansible group1 -m user -a 'name=bbb state=absent remove=yes'

3.group模块

group模块用于管理用户组和用户组属性。

创建组

master# ansible group1 -m group -a 'name=groupa gid=3000 state=present'

删除组(如果有用户的gid为此组,则删除不了)

master# ansible group1 -m group -a 'name=groupa state=absent'

4.cron模块

cron模块用于管理周期性时间任务

创建一个cron任务,不指定user的话,默认就是root(因为我这里是用root操作的)。如果minute,hour,day,month,week不指定的话,默认都为*

master# ansible group1 -m cron -a 'name="test cron1" user=root job="touch /tmp/111" minute=*/2' 

删除cron任务

master# ansible group1 -m cron -a 'name="test cron1" state=absent'

本篇学习的模块,大家有空练习一下
每天学一点,就掌握一点
请各位看官移步下一章:
运维必备技能ansible(四)
关注我,不迷路。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

昏睡的大熊猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值