Bird
Raised Fist0
Jenkinsdevops~5 mins

Agent directive in Jenkins - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the agent directive in a Jenkins pipeline?
The agent directive tells Jenkins where to run the pipeline or a specific stage. It can specify a node, a label, or run on any available agent.
Click to reveal answer
beginner
How do you specify that a Jenkins pipeline should run on any available agent?
Use agent any in the pipeline script to tell Jenkins to run the pipeline on any available agent.
Click to reveal answer
intermediate
What does agent none mean in a Jenkins pipeline?
agent none means the pipeline itself does not run on any agent by default. You must specify agents for individual stages if needed.
Click to reveal answer
beginner
How can you specify a specific label for the agent in Jenkins pipeline?
Use agent { label 'label-name' } to run the pipeline or stage on an agent with that label.
Click to reveal answer
intermediate
Can the agent directive be used inside individual stages in Jenkins pipelines?
Yes, you can specify agent inside stages to run that stage on a different agent than the rest of the pipeline.
Click to reveal answer
What does agent any do in a Jenkins pipeline?
ARuns the pipeline without any agent
BRuns the pipeline on the master node only
CRuns the pipeline on any available agent
DRuns the pipeline on a specific label
Which agent directive means no default agent is assigned to the pipeline?
Aagent any
Bagent docker
Cagent label 'linux'
Dagent none
How do you specify an agent with a label in Jenkins pipeline?
Aagent { label 'my-label' }
Bagent any
Cagent none
Dagent docker
Can you use different agents for different stages in a Jenkins pipeline?
ANo, the agent is global for the whole pipeline
BYes, by specifying <code>agent</code> inside each stage
COnly if you use <code>agent none</code>
DOnly if you use scripted pipelines
What happens if you omit the agent directive in a declarative Jenkins pipeline?
APipeline fails to run
BPipeline runs on any available agent by default
CPipeline runs on the master node
DPipeline runs without an agent
Explain the role of the agent directive in Jenkins pipelines and how it affects where your code runs.
Think about how Jenkins knows where to run your pipeline or stages.
You got /4 concepts.
    Describe how you can run different stages of a Jenkins pipeline on different agents using the agent directive.
    Consider a pipeline that needs different environments for build and test.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the agent directive specify in a Jenkins pipeline?
      easy
      A. The build triggers for the pipeline
      B. The version of Jenkins to use
      C. The environment variables for the pipeline
      D. Where the pipeline or stage should run

      Solution

      1. Step 1: Understand the role of agent

        The agent directive tells Jenkins where to run the pipeline or a specific stage.
      2. Step 2: Compare other options

        Options A, B, and C relate to Jenkins configuration but not the agent directive.
      3. Final Answer:

        Where the pipeline or stage should run -> Option D
      4. Quick Check:

        Agent directive = run location [OK]
      Hint: Agent means where to run your pipeline or stage [OK]
      Common Mistakes:
      • Confusing agent with environment variables
      • Thinking agent sets build triggers
      • Assuming agent defines Jenkins version
      2. Which of the following is the correct syntax to specify that a Jenkins pipeline should run on any available agent?
      easy
      A. agent any
      B. agent: any
      C. agent = any
      D. agent: 'any'

      Solution

      1. Step 1: Recall correct Jenkins pipeline syntax

        The correct syntax to specify any available agent is agent any without colons or equals.
      2. Step 2: Analyze other options

        Options A, B, and D use incorrect punctuation or quotes not valid in declarative pipeline syntax.
      3. Final Answer:

        agent any -> Option A
      4. Quick Check:

        Correct syntax for any agent = agent any [OK]
      Hint: Use 'agent any' without punctuation for any agent [OK]
      Common Mistakes:
      • Adding colons or equals signs incorrectly
      • Using quotes around any
      • Confusing declarative syntax with scripted syntax
      3. Given this Jenkins pipeline snippet, what agent will the Build stage run on?
      pipeline {
        agent none
        stages {
          stage('Build') {
            agent { label 'linux' }
            steps {
              echo 'Building on Linux agent'
            }
          }
        }
      }
      medium
      A. Agent with label 'linux'
      B. Any available agent
      C. No agent, pipeline will fail
      D. Agent with label 'windows'

      Solution

      1. Step 1: Understand agent none at pipeline level

        The pipeline disables default agent allocation with agent none.
      2. Step 2: Check stage-level agent directive

        The Build stage specifies agent { label 'linux' }, so it runs on an agent labeled 'linux'.
      3. Final Answer:

        Agent with label 'linux' -> Option A
      4. Quick Check:

        Stage agent label 'linux' overrides pipeline none [OK]
      Hint: Stage agent label overrides pipeline agent none [OK]
      Common Mistakes:
      • Assuming pipeline agent none means no agent anywhere
      • Confusing label names
      • Thinking default agent applies despite agent none
      4. Identify the error in this Jenkins pipeline snippet:
      pipeline {
        agent {
          label docker
        }
        stages {
          stage('Test') {
            steps {
              echo 'Testing...'
            }
          }
        }
      }
      medium
      A. Incorrect agent block syntax, should be agent { label 'docker' }
      B. Missing quotes around label name
      C. Agent directive cannot use label
      D. Pipeline missing stages block

      Solution

      1. Step 1: Review agent block syntax

        The label value must be enclosed in quotes, like label 'docker'.
      2. Step 2: Identify syntax error

        The snippet has label docker without quotes, causing a syntax error as docker is treated as an undefined variable.
      3. Final Answer:

        Missing quotes around label name -> Option B
      4. Quick Check:

        Agent block syntax must be exact [OK]
      Hint: Agent block must be exactly agent { label 'name' } [OK]
      Common Mistakes:
      • Misplacing braces or indentation
      • Using agent label without braces
      • Confusing agent label with docker agent syntax
      5. You want a Jenkins pipeline that does not allocate any agent by default but runs the Deploy stage on a Docker container with image nginx:latest. Which pipeline snippet correctly achieves this?
      hard
      A. pipeline { agent any stages { stage('Deploy') { agent none steps { echo 'Deploying with nginx container' } } } }
      B. pipeline { agent { docker { image 'nginx:latest' } } stages { stage('Deploy') { steps { echo 'Deploying with nginx container' } } } }
      C. pipeline { agent none stages { stage('Deploy') { agent { docker { image 'nginx:latest' } } steps { echo 'Deploying with nginx container' } } } }
      D. pipeline { agent none stages { stage('Deploy') { agent { label 'nginx:latest' } steps { echo 'Deploying with nginx container' } } } }

      Solution

      1. Step 1: Disable default agent allocation

        Using agent none at pipeline level disables default agent allocation.
      2. Step 2: Specify Docker agent for Deploy stage

        The Deploy stage uses agent { docker { image 'nginx:latest' } } to run inside the nginx Docker container.
      3. Step 3: Verify other options

        pipeline { agent { docker { image 'nginx:latest' } } stages { stage('Deploy') { steps { echo 'Deploying with nginx container' } } } } runs entire pipeline in Docker, not just Deploy stage. pipeline { agent any stages { stage('Deploy') { agent none steps { echo 'Deploying with nginx container' } } } } wrongly uses agent none inside stage with agent any pipeline. pipeline { agent none stages { stage('Deploy') { agent { label 'nginx:latest' } steps { echo 'Deploying with nginx container' } } } } uses label instead of docker image.
      4. Final Answer:

        Pipeline with agent none and stage agent docker image nginx:latest -> Option C
      5. Quick Check:

        agent none + stage docker agent = correct [OK]
      Hint: Use agent none globally, docker agent per stage [OK]
      Common Mistakes:
      • Using agent any globally when none is needed
      • Misusing label instead of docker image
      • Placing agent none inside stage incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard