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 [email protected]
  • 删除tigerhhzz用户
bash 复制代码
ansible webserves -m user -a 'name=tigerhhzz state=absent'

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

bash 复制代码
ansible-doc user

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


相关推荐
正经教主7 小时前
【问题】解决docker的方式安装n8n,找不到docker.n8n.io/n8nio/n8n:latest镜像的问题
运维·docker·容器·n8n
唯独失去了从容7 小时前
WebRTC服务器Coturn服务器中的通信协议
运维·服务器·webrtc
ai大佬8 小时前
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
java·spring·自动化·api中转·apikey
joker_zsl8 小时前
docker的安装和简单使用(ubuntu环境)
运维·docker·容器
Run1.9 小时前
深入解析 Linux 中动静态库的加载机制:从原理到实践
linux·运维·服务器
VI8664956I269 小时前
全链路自动化AIGC内容工厂:构建企业级智能内容生产系统
运维·自动化·aigc
264玫瑰资源库10 小时前
斗鱼娱乐电玩平台源码搭建实录
运维·服务器·游戏·娱乐
Jogging-Snail10 小时前
从零开始掌握Linux数据流:管道与重定向完全指南
linux·运维·管道·重定向·linux 数据流·管道原理
niuTaylor11 小时前
Linux驱动开发快速上手指南:从理论到实战
linux·运维·开发语言·驱动开发·c#
fxshy11 小时前
ai聊天流式响应,阻塞式和流式响应 nginx遇到的坑
运维·javascript·nginx