Jobs

Overview

The Jobs page displays the history and status of all hardening jobs executed in the system. Hardening jobs apply CIS benchmark configurations to hosts to improve their security posture.

Navigation

Menu: Infrastructure > Jobs

Page Layout

Toolbar

ButtonDescription
RefreshManually reload the job list

The page shows “Auto-refresh every 10 seconds” indicator.

Jobs Table

ColumnDescription
HostTarget server hostname (resolved from host ID)
ProfileCIS profile used (e.g., cis-level1-server, cis-level2-server)
StatusCurrent job status with warning icon if error exists
DurationTime taken to complete (in seconds)
Started AtJob start timestamp
CompletedJob completion timestamp
ActionsView Output button

Pagination

  • Default page size: 50 items
  • Available sizes: 20, 50, 100, 200, 500 items per page
  • Shows range indicator (e.g., “1-50 / 127”)

Job Statuses

StatusColorDescription
pendingGrayJob is waiting to be picked up by worker
queuedBlue (processing)Job is queued for execution
runningBlueJob is currently executing
completedGreenJob finished successfully
failedRedJob encountered an error

Error Indicator

When a job has an error message, a warning icon (yellow/red) appears next to the status tag. Hover over the icon to see the error message.

Viewing Job Details

Click the View Output button on any job row to open the details modal:

Details Modal Contents

FieldDescription
Job IDFull unique job identifier (UUID)
HostTarget server hostname
ProfileCIS profile used for hardening
StatusCurrent status with color tag
PriorityJob priority level
CreatedJob creation timestamp
Started AtWhen the job started executing
CompletedWhen the job finished
DurationExecution time in seconds
ErrorError message if job failed (displayed in red box)
Ansible OutputFull Ansible playbook execution log
ResultJob result data (if available)

Ansible Output

For completed or failed jobs, the Ansible Output section shows the full playbook execution log:

PLAY [Apply CIS Hardening] *****
TASK [Gathering Facts] *****
ok: [192.168.1.10]
TASK [section1 : Ensure mounting of cramfs filesystems is disabled] *****
changed: [192.168.1.10]
...

The output shows:

  • Each task executed
  • Status (ok, changed, failed, skipped)
  • Any error messages or warnings

The output panel supports scrolling and has a maximum height of 400px.

Auto-Refresh

The Jobs page automatically refreshes every 10 seconds to show updated job statuses. This allows you to monitor job progress in real-time without manually refreshing.

Job Workflow

1. Job Creation

Jobs are created when:

  • User clicks Harden on a host (Hosts page)
  • User clicks Bulk Harden for selected hosts
  • A schedule triggers automatically (Schedules page)
  • Quick Fix is initiated from compliance scan results

2. Job Queuing

New jobs enter the pending state and are added to the job queue.

The worker process picks up jobs from the queue based on priority.

3. Job Execution

The worker:

  1. Connects to the target host via SSH
  2. Runs the Ansible hardening playbook
  3. Applies CIS configurations based on the selected profile
  4. Records the output and results

4. Job Completion

Jobs complete with one of two outcomes:

Success (completed):

  • All tasks executed without critical errors
  • Host configuration was modified
  • Run a new compliance scan to verify improvements

Failure (failed):

  • An error prevented completion
  • Check the error message and Ansible output
  • Common causes: SSH connectivity, permissions, package conflicts

Understanding Profiles

CIS Level 1 - Server

Basic hardening suitable for most server environments:

  • Disables unnecessary services
  • Configures basic security settings
  • Minimal impact on functionality

CIS Level 2 - Server

Comprehensive hardening for high-security environments:

  • All Level 1 controls
  • Additional restrictions
  • May impact some applications

CIS Level 1 - Workstation

Basic hardening for workstation systems.

CIS Level 2 - Workstation

Enhanced hardening for workstation systems.

STIG Server/Workstation

DISA STIG compliance profiles for server and workstation systems.

Error Handling

Common Errors

ErrorCauseSolution
SSH connection failedHost unreachableCheck network connectivity and SSH credentials
Permission deniedInsufficient privilegesEnsure SSH user has sudo access
Package not foundMissing dependenciesInstall required packages on host
Service failed to startConfiguration conflictReview Ansible output for details
Connection timeoutNetwork issuesCheck firewalls and network connectivity

Viewing Error Details

  1. Find the job with the warning icon in the Status column
  2. Hover over the warning icon for a quick preview
  3. Click View Output for full details
  4. Review the Error field in the modal
  5. Search for “FAILED” or “error” in the Ansible Output

Job Priority

Jobs have a priority field that affects execution order:

  • Higher priority jobs are executed first
  • Priority is set when creating the hardening job from the Hosts page
  • Default priority levels: Lowest, Low, Normal, High, Critical

Canceling Jobs

Currently, jobs cannot be canceled once started. The job will run to completion or failure.

For long-running jobs, you can:

  1. Wait for completion
  2. Check the worker logs for progress
  3. Contact an administrator if the job appears stuck

Best Practices

Before Running Jobs

  1. Backup: Ensure host has recent backups
  2. Test: Run a compliance scan first to understand current state
  3. Schedule: Run during maintenance windows
  4. Communicate: Inform affected users

After Job Completion

  1. Verify: Run a compliance scan to confirm improvements
  2. Test: Verify applications still function correctly
  3. Document: Record changes made

Monitoring

  1. Check Jobs page daily for failed jobs
  2. Investigate failures promptly
  3. Track compliance improvement over time
  4. Use the auto-refresh feature to monitor running jobs

Related Pages