Skip to content

Execution Options

Clicking ▶ Run on a job template opens the Run modal, where you can override its default targets, connection login, and variables for this one execution — nothing here changes the template itself.

Targeting: hosts vs. host groups

Run modal — Hosts vs. Host Groups targeting, with a filterable, select-all host checklist

  • Hosts — a filterable, multi-select checklist of individual hosts, with a "select all (filtered)" toggle. Leave nothing checked to fall back to the template's own default target hosts.
  • Host Groups — select one or more host groups; SeyalRun resolves group membership to the underlying host list before dispatching the run.

The modal shows a live "▸ N hosts targeted" summary as you adjust your selection.

Connection login (credential mode)

Run modal — connection login: Default, One for all, or Per-host credential selection

This is the SSH login SeyalRun uses to reach each host — separate from any "subject" account an account-lifecycle template manages (below). Three modes:

ModeBehavior
DefaultEach host connects using its own linked "push account" credential. For Ansible/Bash templates, if a host has no linked credential, the template's pinned Execution Credential is used as a fallback.
One for allPick a single credential from the vault; every targeted host connects with it.
Per-hostPick a credential individually for each resolved target host (defaults to "Default (push account)" per host unless overridden).

Running with sudo

If the template has Run with sudo enabled, the become/sudo password is always resolved from a stored credential — the login credential's own password by default, or a separately pinned sudo credential. It must be a password-type credential; an SSH-key credential has no password to hand to sudo -S. This password is never accepted as free text in the Run modal and never persisted in job history — only the credential reference is stored.

Extra variables

Run modal — Extra Variables JSON textarea

An optional JSON object, merged over the template's own default parameters:

  • Ansible Playbook — passed straight through as --extra-vars '<json>', available to the playbook as normal Ansible vars.
  • Bash Script — available via the script_args mechanism set on the template (positional $1, $2, …), not as environment variables.

Server-side, only param keys the template explicitly allows (its allowed_param_keys, plus its own default_params/survey fields) can be supplied this way — anything else is rejected with a 400 error. The script or playbook content itself can never be overridden from the Run modal or from an extra var; it always comes from the template.

Account-lifecycle templates: the "subject" account

For the four built-in templates (Create/Push, Rotate Secret, Disable, Remove Account) and any custom template of the same type, the Run modal adds a Subject account picker above the targets — the credential whose username is the account created, rotated, disabled, or removed on each host, and whose secret becomes that account's new password/key (for Create/Push and Rotate). Leaving it unset falls back to whatever subject credential is pinned on the template.

Quick Actions

Templates with Quick Action button on host cards enabled (see Writing Playbooks & Scripts) appear as one-click "▶ Name" buttons directly on the Assets page, scoped to that single host — useful for a "Restart nginx" script or similar you run often against one server at a time without opening the full Run modal.

Scheduling (cron)

Any job template can be bound to a recurring cron schedule from the Schedules tab (admin/support only):

Schedules tab — name, job template, cron expression, next run, status

New Schedule modal — name, job template picker, cron expression with human-readable preview

  • Cron Expression — standard 5-field cron (m h dom mon dow), validated on save; a short human-readable preview is shown for common patterns (e.g. "Daily at 02:00") and falls back to the raw expression otherwise.
  • Params Override — an optional JSON object merged over the template's default parameters for scheduled runs specifically.
  • A background poller checks every 60 seconds for schedules whose next run is due, fires a job run (triggered_by: schedule:<id>), and computes the next next_run_at. Disabling a schedule doesn't delete its history — past runs stay visible under Recent Runs.

Secure. Controlled. Automated. — Released under the Apache License 2.0.