首页 > 其他分享 >Ansible 批量100台服务器添加 Crontab

Ansible 批量100台服务器添加 Crontab

时间:2023-08-15 15:38:21浏览次数:117  
标签:name crontab 条目 cron Ansible Crontab 100 playbook

Ansible 是使用 Python 开发的自动化运维工具。它可以配置管理,部署软件并编排更高级的任务,例如持续部署或零停机滚动升级。Ansible 可以用来管理 crontab。Crontab 是一个用于在 Unix 和 Unix-like 操作系统上执行定期任务的工具,它允许用户在预定的时间间隔内自动运行命令或脚本。Crontab 是 Cron Table 的缩写,Cron 是一个用于定时执行任务的守护进程。

Crontab 使用一个称为 crontab 文件的特殊文件来定义定期任务的计划。每个用户都可以拥有自己的 crontab 文件,其中包含一系列命令或脚本以及与之关联的时间规则。

借助 Ansible,用户可以轻松地创建、修改和删除 crontab 条目,自动化 Crontab 任务的管理。

为什么需要用 Ansible 管理 crontab

在没用使用 Ansible 之前,都是通过 crontab -e 手动对 cron 任务进行管理,通常的任务就是备份与同步。但是随着要管理的机器和需要定义的脚本内容越来越复杂,手工编辑 crontab 就无法维护了。

另外在学习 Ansible 之后,了解了「Infrastructure as Code」概念,通过配置文件来定义所有的配置修改是一个不错的解决方案。这样一方面不用自己备份所有的脚本内容,也不用每一次都临时创建。在系统初始化的时候,直接通过 Ansible 就能纳入管理。

安装 Ansible

首先,确保你的系统上已经安装了 Ansible。你可以使用包管理器来安装它。例如,在 Ubuntu 上,你可以运行以下命令:

sudo apt update
sudo apt install ansible

下面是一些使用 Ansible 管理 crontab 的常见任务示例:

创建 crontab 条目

使用 Ansible 创建 crontab 条目非常简单。你可以编写一个 Ansible playbook 文件,其中定义了你要创建的 crontab 条目。以下是一个示例 playbook 文件的内容:

---
- name: Manage crontab
  hosts: your_target_hosts
  tasks:
    - name: Add crontab entry
      cron:
        name: "rsync backup"
        minute: "0"
        hour: "2"
        job: "/path/to/your/backup_script.sh"

在这个示例中,your_target_hosts 是你要管理 crontab 的目标主机的列表。name 字段是 crontab 条目的名称,minute 和 hour 字段是定时任务的执行时间,job 字段是要执行的脚本或命令。

保存以上内容到一个 YAML 文件(比如 crontab.yml),然后运行以下命令来执行 playbook:

ansible-playbook crontab.yml

将在目标主机上创建一个新的 crontab 条目。

修改和删除 crontab 条目

要修改或删除现有的 crontab 条目,你可以使用 Ansible 的 cron 模块的 state 参数。以下是一个示例 playbook 文件,演示如何修改和删除 crontab 条目:

---
- name: Manage crontab
  hosts: your_target_hosts
  tasks:
    - name: Modify crontab entry
      cron:
        name: "My cron job"
        minute: "30"
        hour: "3"
        job: "/path/to/your/updated_script.sh"
        state: present

    - name: Remove crontab entry
      cron:
        name: "My cron job"
        state: absent

在这个示例中,state: present 表示修改 crontab 条目,state: absent 表示删除 crontab 条目。保存以上内容到一个 YAML 文件,然后运行 ansible-playbook 命令来执行 playbook。

标签:name,crontab,条目,cron,Ansible,Crontab,100,playbook
From: https://blog.51cto.com/u_64214/7089216

相关文章

  • H3C F1000-AI与山石AX520S对接IPsecVPN
    总部由于之前防火墙出过几次问题,于是最近规划更换防火墙,把从原先的H3C墙换成山石墙,换完以后那几天vpn连接就有点不稳定,偶尔会有丢包,但是访问业务还算正常,但是就在那天下午我和总部之间分别加了一条感兴趣流,让某个业务系统可以相互访问,然而在第二天使用VPN连接的业务便开始出现大量......
  • 小米发布全新CyberDog 2,体型接近真实小型犬,超80%开源率,100+接口开放
    小米发布全新CyberDog2,体型接近真实小型犬,超80%开源率,100+接口开放2023-08-1508:01:28 来源: 金融界分享到:8月14日,小米发布全新仿生四足机器人CyberDog2。该款产品在继承前代优势的基础上,进行了全面的技术升级:它配备了新一代小米自研高性能电机,提供了更为强大的动态响应......
  • Ansible快速复习
    本文章是上一篇ansible自动化运维的快速复习以及项目上用到的一些命令,针对长时间未使用ansible,导致命令忘记的同学,帮助快速回忆。详细内容还是看上一章‘ansible自动化运维’。查看版本ansible--version工作目录/etc/ansible/ansibel.cfg && /root/.ansible.cfg && .......
  • 20天 hot 100 速通计划-day08
    二叉树94.二叉树的中序遍历给定一个二叉树的根节点root,返回它的中序遍历。示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]提示:树中节点数目在范围[0,100]内-100<=Node.val<=100递归三部曲......
  • crontab命令
    crontab命令用于管理crontab任务调度。crontab负责按照事先设置的时间自动执行指定的系统任务或命令。常用的crontab命令有:crontab-e:编辑当前用户的crontab任务。crontab-l:显示当前用户的crontab任务。crontab-r:删除当前用户的所有crontab任务。cronta......
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:81-100)
    第81题某公司新购入一台网络设备,作为网络管理员,初次配置该设备通常通过什么方式?A、FTPB、TelnetC、SNMPD、Console口登录答案:D解析:通常情况下,初次配置网络设备会通过Console口登录的方式进行。Console口是一种串口接口,可以直接连接到设备的控制台端口。通过Console口登录设备......
  • Ansible自动化运维
    一、什么是ansible1、介绍Ansible是一款开源自动化平台。是一种简单的自动化语言,能够在AnsiblePlaybook中完美地描述IT应用基础架构。也是一个自动化引擎,可运行AnsiblePlaybook。2、逻辑图3、ansible特点简单明了  Ansibleplaybook提供人类可读的自动化。功......
  • c语言:输出1~100之间的奇数
    方法一:用for#include<stdio.h>intmain(){ inti=1;intp=0;for(i=1;i<=100;i++){ p=i%2; if(p==1) printf("%d",i); }return0;}方法二:用while#include<stdio.h>intmain(){inti=1;while(i<=1......
  • 跳槽!阿里工作100+天,菜鸡职业生涯的一点记录
    系列文章目录和关于我-Cuzzz-博客园(cnblogs.com)零丶序言来阿里100天了(准确说是137天,转正后就想写的,但是一直拖延了40天+),在互联网哀鸿遍野的当下,工作不到两年的我选择跳槽,并拿到蚂蚁、字节、pdd、阿里的offer,最终选择阿里,并在阿里转正并度过100天+,写文记录下这段时光。......
  • 定时任务查询通道狂暴超时,原因竟然是取数据不当----清扫100年前纽约街头马粪的不是清
    本文首发于我的公众号[发现问题就解决,是低效的方式,得探究根源]、【100年前的纽约街头,市民以马车为出行工具,问题来了】 我们支付系统有个定时任务,就是将系统里所有付款中的交易,调用第三方银行查单接口,然后持久化更新付款状态。 许多同学都做过类似的定时调度程序吧。 近......