当前位置: 首页 > article >正文

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

文章目录

    • 一、fetch 模块
      • 1.1、功能
      • 1.2、常用参数
      • 1.3、测试
      • 1.4、注意事项
    • 二、cron 模块
      • 2.1、功能
      • 2.2、常用参数
      • 2.3、注意事项
    • 三、group模块
      • 3.1、功能
      • 3.2、常用参数
      • 3.3、例子
      • 3.4、注意事项

一、fetch 模块

1.1、功能

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

1.2、常用参数

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

1.3、测试

#在host02主机中创建文件
vim /tmp/file23.txt

在这里插入图片描述

#使用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(表示删除任务)。
#查询任务计划
crontab -l

在这里插入图片描述
显示没有任务。

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

在这里插入图片描述
查看主机host03上已经有定时任务了:
在这里插入图片描述

  • 删除任务
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、例子

ansible webserves -m group -a 'name=gl gid=1010 state=present'

在这里插入图片描述
上述操作是在 webserves 主机或主机组上创建或更新一个名为 gl、GID 为 1010 的用户组。

#过滤查看组的信息
grep gl /etc/group

在这里插入图片描述

3.4、注意事项

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

在这里插入图片描述


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



http://www.kler.cn/a/517351.html

相关文章:

  • vim如何设置自动缩进
  • StarRocks常用命令
  • 【贪心算法】洛谷P1106 - 删数问题
  • Spring 源码学习(七)——注解后处理器-2
  • 快门:凝固瞬间与塑造动感的魔法开关
  • ssh密钥登录GitHub时一直提示“Error: Permission denied (publickey)”
  • 【Uniapp-Vue3】uni-icons的安装和使用
  • 使用Mermaid和AI画流程图
  • vue2和vue3指令
  • [操作系统] 深入进程地址空间
  • 机器学习数据集来源
  • Sourcetree:一款高效便捷的Git版本控制客户端
  • UI操作总结
  • c++在线音乐播放器项目开发记录(1)
  • 【Windows】Linux 远程连接工具SecureCRT9.1、SecureFX9.1的安装
  • VScode连接远程Linux服务器环境配置
  • postgresql根据主键ID字段分批删除表数据
  • Python自动化运维:一键掌控服务器的高效之道
  • 【QT】-explicit关键字
  • 如何将使用unsloth微调的模型部署到ollama?
  • 通过聚合和分离进行音频深度伪造检测的领域泛化
  • Android Studio:视图绑定的岁月变迁(2/100)
  • 在Linux系统上安装.NET
  • 【江西省乡镇界】面图层shp格式乡镇名称和编码wgs84无偏移arcgis数据内容测评
  • AI评估困境:标准化与实际应用的鸿沟
  • MySQL Redo Log 两阶段提交