LoginSignup
0
0

More than 1 year has passed since last update.

ansible-playbookでcronの設定をおこなう

Posted at

はじめに

crontabの設定を実施するansible-playbookです
取り急ぎスクリプトを定期実行させたい場合を想定しています
異常時はreturn codeで判別することにして、cronのログにreturn codeを出力させます

前提

ansible-playbookの簡単な使い方はわかる前提で記載しています

  • 環境
    • Ubuntu 20.04

ファイル構成

L group_vars
    - cron_server.yml
- cron_server_playbook.yml
- hosts

group_vars/cron_server.yml

以下の2つの設定を書いています

  • rsyslogの設定でcronのログを出力する設定
  • return codeが0以外のときにログに出力するためにログレベルの記載
---
# /etc/rsyslog.d/50-default.conf
default_conf_50: 
        - parameter: "#cron"
          value: "cron.*                           /var/log/cron.log"
# /etc/default/cron
cron_loglevel: "EXTRA_OPTS='-L 15'"

hosts

IPアドレスは導入するサーバの値を指定します

[cron_server]
aaa.bbb.ccc.ddd

cron_server_playbook.yml

やっていることは、以下の3つです

  • rsyslogの設定を変更しcron実行時のログを出力させ、rsyslogサービスを再起動
  • 出力するログレベルを設定、crontabを再起動
  • crontabに1日1回のジョブと5分間隔のジョブを登録する(crontab -e 相当の操作)
- name: crontab configure
  hosts: cron_server
  tasks:
    - name: configure rsyslog
      become: true
      lineinfile:
        dest: "/etc/rsyslog.d/50-default.conf"
        line: "{{ item.value }}"
        regexp: "^{{ item.parameter }}"
        create: yes
      loop: "{{ default_conf_50 }}"
      loop_control:
        label: "{{ item.parameter }}"
    - name: restart rsyslog
      become: true
      systemd:
        name: rsyslog
        state: restarted
        enabled: yes
    - name: configure cron logging
      become: true
      lineinfile:
        dest: "/etc/default/cron"
        line: "{{ cron_loglevel }}"
    - name: restart crontab
      become: true
      systemd:
        name: cron
        state: restarted
        enabled: yes
    - name: setting crontab(daily)
      cron:
        name: "cron_name"
        user: "ubuntu"
        minute: "15"
        hour: "01"
        job: "echo abc"
    - name: setting crontab(5m interval)
      cron:
        name: "cron_name"
        user: "ubuntu"
        minute: "*/5"
        job: "echo abcdefg"

おわりに

説明不足だと思いますので不明な点があればコメントいただければわかる範囲で追記します

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0