ansible自动化运维实战--复制模块和用户模块(3)

文章目录

一、复制模块(copy)

1.1、功能

用于将本地文件复制到远程主机。可以指定源文件或目录,以及目标路径。

1.2、常用参数

  • src:指定要复制的源文件或目录的路径,可以是相对路径或绝对路径。
  • dest:指定复制到远程主机上的目标路径,必须是绝对路径。
  • owner:设置目标文件或目录的所有者。
  • group:设置目标文件或目录的所属组。
  • mode:设置目标文件或目录的权限。
  • backup:是一个可选的参数,其主要功能是在复制文件时,若目标文件已经存在,Ansible 会先将其备份(参数取值backup: false默认值,不进行备份操作; true:执行备份操作。)

1.3、示例

bash 复制代码
ansible webserves -m copy -a 'src=/etc/hosts dest=/tmp/2.txt owner=root group=bin mode=777 backup=yes'

当 backup 参数设置为 true 时,如果复制操作会覆盖远程主机上的现有文件,Ansible 会先将现有的文件备份到一个以 .bak 结尾的文件中。这可以防止意外覆盖重要文件,并提供了一种恢复机制,确保在出现问题时能够回滚到原始文件。

在上述示例中,Ansible 会将本地/etc/hosts 文件复制到远程 /tmp/2.txt 位置。如果/tmp/2.txt 已经存在,Ansible 会先将其备份为 2.txt.2449.2025-01-22@10:34:51~,然后再进行复制操作。这样可以保留原始文件的副本,防止数据丢失或误操作带来的风险。

1.4、注意事项

  • 备份文件的名称是自动生成的,遵循 原文件名.bak 的格式。如果多次进行复制操作,并且都触发了备份,Ansible 会不断创建新的备份文件,例如:file.txt.bak、file.txt.bak.1、file.txt.bak.2 等,以避免覆盖之前的备份文件。
  • 备份文件会占用一定的存储空间,所以在使用该功能时,需要确保远程主机有足够的空间存储备份文件。
    这个参数在进行文件更新操作时特别有用,能够为文件提供一定的安全性和可恢复性,降低因复制操作而导致数据丢失的风险。在执行自动化任务时,尤其是涉及到关键配置文件的更新或替换时,使用 backup 参数可以作为一种良好的实践。

查看帮助文档,可使用命令:

bash 复制代码
ansible-doc copy

二、用户模块(user)

2.1、功能

用于在远程主机上创建、删除或管理用户账户。可以设置用户的各种属性,如密码、UID、GID 等。

2.2、常用参数

  • name:要创建或管理的用户名,这是必选参数。
  • password:设置用户的密码,密码需要使用加密后的字符串。
  • uid:指定用户的 UID。
  • gid:指定用户的主组 GID。
  • groups:指定用户所属的附加组。
  • state:指定用户的状态,取值为present(默认,表示创建或更新用户)或absent(表示删除用户)。

2.3、示例

  • 添加tigerhhzz用户
bash 复制代码
ansible webserves -m user -a 'name=tigerhhzz state=present'


bash 复制代码
#生成加密密码
echo "123" | openssl passwd -1 -stdin

#输出结果
$1$S3KBwt0V$HqjEknzOIWRi47aodCFlD1
  • tigerhhzz用户名添加密码
bash 复制代码
#给tigerhhzz用户名添加密码
ansible webserves -m user -a 'name=tigerhhzz password="$1$S3KBwt0V$HqjEknzOIWRi47aodCFlD1"'

#测试 使用tigerhhzz登录
ssh tigerhhzz@192.168.162.105
  • 删除tigerhhzz用户
bash 复制代码
ansible webserves -m user -a 'name=tigerhhzz state=absent'

查看帮助文档,可使用命令:

bash 复制代码
ansible-doc user

想,都是问题;做,才是答案。


相关推荐
云动雨颤9 分钟前
Linux下PXE服务器搭建
linux·运维·服务器
wanhengidc33 分钟前
云手机会占用本地手机内存吗?
运维·服务器·网络·安全·智能手机
blasit1 小时前
Ubuntu 20.04.6交叉编译得到Ubuntu 16.04.6的可执行文件
linux·运维·ubuntu
徐sir(徐慧阳)1 小时前
国产存储分布式raid更换故障硬盘
运维·服务器
Jayyih3 小时前
嵌入式系统学习Day23(进程)
linux·运维·服务器
小王努力学编程3 小时前
从零开始的 Docker 之旅
linux·运维·服务器·docker·容器·容器编排·镜像制作
神秘人X7073 小时前
Ansible自动化运维介绍与安装
运维·自动化·ansible
東雪蓮☆5 小时前
深入理解 iptables:Linux 防火墙从入门到精通
linux·运维·网络
努力学习的小廉5 小时前
深入了解linux系统—— 线程互斥
linux·运维·服务器
JioJio~z6 小时前
PLC通讯中遇到的实际场景
运维·服务器·网络