Getting started

Initial configuration

debops.atd will install the at Debian package which provides the atd service as well as commands that allow you to schedule jobs at a specific time or when the host CPU load average is below a specific threshold.

By default the interval of the batch command checking if jobs can be run, as well as the level of CPU utilization which halts job scheduling are somewhat randomized to “smooth out” CPU utilization on hosts with multiple virtual machines and/or containers. See the default variables for the minimum and maximum values for each.

After installation, the role creates a /etc/at.allow file which only enables the use of the at and batch commands by the Ansible admin account (superuser has implicit access). You can either add specific users to this list by using atd_*_allow list variables, or enable access by all users not listed in /etc/at.deny by defining atd_default_allow as empty list ([]).

Example inventory

debops.atd is included by default in the common.yml DebOps playbook; you don’t need to do anything to have it installed.

If you want to disable the atd service on a host or set of hosts, you can do this by the setting variable:

atd_enabled: False

in Ansible’s inventory.

Example playbook

Here’s an example playbook that can be used to enable and manage the atd service on a set of hosts:

---
- name: Configure atd service
  hosts: debops_atd
  become: True

  roles:

    - role: debops.atd
      tags: [ 'role::atd' ]

Ansible tags

You can use Ansible –tags or –skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after the host is first configured to speed up playbook execution, when you are sure that most of the configuration has not been changed.

Available role tags:

role::atd
Main role tag, should be used in the playbook to execute all of the role tasks.
role::atd:users
Configure contents of /etc/at.allow` and /etc/at.deny configuration files.