Basic concepts for jobs
A job is a set of instructions for performing a task on one or more servers. BMC Server Automation provides many types of jobs, as listed in Job types. A job run is the result of executing a job at a particular time on one or more servers. A single job may have many job runs. A job definition is the set of instructions that are in effect for a particular job run.
To successfully execute a job, you need multiple levels of authorization. First, your role must be authorized to read and execute a particular category of job, such as Deploy Jobs or Component Discovery Jobs. Then, your role must have permission to read and execute a particular job. Finally, you must have permission to act on a target resource. For example, you must be able to read the server or component where you are running a job.
If a job modifies a target resource, you must have appropriate permission for that. For more information about defining permissions, see Access management. If you attempt to run a job on a server for which your role is not authorized, the job does not run and the status of the job on that server is set to NOT_ATTEMPTED.
All jobs execute in the background, allowing you to execute multiple jobs simultaneously. You can even execute the same job simultaneously under the following circumstances:
- The job must be one of the following types:
- Batch Job
- basic Deploy Job (not applicable for advanced Deploy jobs)
- File Deploy Job
- Network Shell Script Job
- Different instances of a job are not targeting any of the same servers.
To keep track of the progress of any specific job across its multiple job runs, you can create an Execution Task for the job. The Execution Task concentrates information about the relevant job runs as they progress towards the successful completion of the job on all target servers. You can also use Execution Tasks to define separate job schedules for different target servers and to coordinate job schedules with upcoming maintenance windows on the various servers. In addition, you can use an Execution Task to override job properties without modifying the original job.
The following topics provide additional information on job types and the various job management tasks: