ansible自动化运维实战--fetch、cron和group模块(5)

文章目录

一、fetch 模块

1.1、功能

fetch 模块的主要功能是将远程主机上的文件复制到本地控制节点。此模块会保留文件的时间戳和权限信息,并且可以将不同远程主机的文件分别存储到以主机名命名的子目录中,以避免文件冲突。

1.2、常用参数

  • src:必选参数,指定远程主机上要复制的文件的路径。
  • dest:必选参数,指定本地控制节点上存储复制文件的目标目录。
  • flat:布尔类型参数,默认值为 false。若设为 true,文件会直接复制到 dest 指定的目录下;若为 false,文件会被复制到以远程主机名命名的子目录中。
  • validate_checksum:布尔类型参数,默认值为 true。若设为 true,复制文件时会校验文件的校验和,确保文件复制过程中没有损坏。

1.3、测试

bash 复制代码
#在host02主机中创建文件
vim /tmp/file23.txt
bash 复制代码
#使用ansible的fetch功能将host02中创建的文件copy到ansible主机中
ansible host02 -m fetch -a "src=/tmp/file23.txt dest=/root/"

1.4、注意事项

  • 权限问题:确保控制节点用户对 dest 目录有写入权限,同时远程主机用户对 src 文件有读取权限。
  • 文件冲突:若使用 flat 参数,要注意避免不同远程主机的文件因文件名相同而发生冲突。
  • 大文件处理:对于大文件,复制过程可能会耗费较多时间和网络带宽,要提前做好规划。

二、cron 模块

2.1、功能

cron 模块用于在远程主机上管理 cron 任务,cron 任务是一种在特定时间间隔自动执行命令或脚本的机制。

2.2、常用参数

  • name:cron 任务的名称,是可选参数,但建议使用,用于标识该任务,方便后续管理。
  • minute:指定任务执行的分钟,取值范围是 0 - 59,也可以使用特殊字符如 (表示任意值)、/2(表示每 2 分钟)等。
  • hour:指定任务执行的小时,取值范围是 0 - 23。
  • day:指定任务执行的日期,取值范围是 1 - 31。
  • month:指定任务执行的月份,取值范围是 1 - 12。
  • weekday:指定任务执行的星期几,取值范围是 0 - 7(0 和 7 都表示星期日)。
  • job:要执行的命令或脚本,是必需参数。
  • user:指定以哪个用户的身份执行 cron 任务,默认是 root。
  • state:指定任务的状态,取值为 present(默认值,表示创建或更新任务)或 absent(表示删除任务)。
bash 复制代码
#查询任务计划
crontab -l

显示没有任务。

  • 创建任务
bash 复制代码
ansible host03 -m cron -a 'name="sync time from ntpserver" minute="*/10" job="/sbin/ntpdate 192.168.162.101 &> /dev/null"'

查看主机host03上已经有定时任务了:

  • 删除任务
bash 复制代码
ansible host03 -m cron -a 'name="sync time from ntpserver" state=absent'

再次查看,已经没有任务了

2.3、注意事项

  • 命令路径:在 job 参数中使用的命令或脚本路径要确保在远程主机上是正确且可执行的。
  • 权限问题:如果使用 user 参数指定了非 root 用户,要保证该用户对执行的命令或脚本有足够的权限。
  • 任务冲突:避免创建时间和任务内容冲突的 cron 任务,以免出现不可预期的结果。

三、group模块

3.1、功能

Ansible 的 group 模块用于在远程主机上创建、修改或删除用户组。以下为你详细介绍该模块:

3.2、常用参数

  • name:必选参数,用于指定用户组的名称。
  • gid:可选参数,用于指定用户组的组 ID(GID)。若不指定,系统会自动分配一个可用的 GID。
  • state:指定用户组的状态,取值为 present(默认值,表示创建或更新用户组)或 absent(表示删除用户组)。
  • system:布尔类型参数,默认值为 false。若设为 true,则创建系统用户组,系统用户组的 GID 范围通常较低。

3.3、例子

bash 复制代码
ansible webserves -m group -a 'name=gl gid=1010 state=present'

上述操作是在 webserves 主机或主机组上创建或更新一个名为 gl、GID 为 1010 的用户组。

bash 复制代码
#过滤查看组的信息
grep gl /etc/group

3.4、注意事项

  • GID 冲突:手动指定 GID 时,要确保该 GID 在远程主机上未被其他用户组使用,避免出现冲突。
  • 权限问题:确保 Ansible 执行任务的用户具有足够的权限在远程主机上创建、修改或删除用户组,通常需要 root 权限。
  • 用户关联:删除用户组时,要注意该用户组是否关联了其他用户,避免影响系统正常运行。

生活可能不像你想象的那么好,但是也不会像你想象的那么糟。


相关推荐
JIAKSK26 分钟前
VitePress 接入百度统计:全面教程与优化指南
运维·数据可视化
网硕互联的小客服1 小时前
未来趋势:AI与量子计算对服务器安全的影响
运维·服务器·网络·网络安全·量子计算
宇钶宇夕1 小时前
STEP 7 MicroWIN SMART V2.2 的详细安装步骤及注意事项
运维·服务器·程序人生·自动化
czhc11400756632 小时前
Linux 77 FTP
linux·运维·服务器
天若有情6732 小时前
【Linux】02_CentOS 7 开机运行级别详解:从基础概念到实战配置
linux·运维·centos
小爱同学ya2 小时前
【效率提升教程】飞书自动化上传图片和文字
自动化·飞书
張萠飛2 小时前
Linux中程序的limits中的Max open files的配置由哪些参数决定
linux·运维·服务器
一心09210 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上10 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊10 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins