文章目录
一、复制模块(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
想,都是问题;做,才是答案。