> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Demo Review Existing Jenkins Instance

> Reviewing and inventorying an existing Jenkins controller, jobs, agents, plugins, and credentials to plan migration to GitHub Actions or other CI platforms

Before migrating pipelines or running migrations, perform a focused review of the existing Jenkins controller, its job types, agents, plugins, and credentials. This helps identify compatibility issues, credentials that must be re-created, and any agent configuration needed when migrating to GitHub Actions or other CI platforms.

I’m running Jenkins on a VM reachable at `http://139.84.149.70:8080` and the controller version is 2.504.1. The instance hosts roughly four projects of mixed types (Freestyle, Declarative Pipeline, Scripted Pipeline) with various triggers (poll-based and SCM-based).

Here’s the Jenkins process observed on the host (Java flags shown):

```bash theme={null}
root@jenkins:~#
ps aux | grep -i jenkins
jenkins      940  0.5 10.0 6892276 1649636 ?        Ssl  May19   5:56 /usr/bin/java -Xms1G -Xmx2G -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
root        28174  0.0  0.0  6544  2304 pts/0    S+   12:45   0:00 grep --color=auto -i jenkins
```

The dashboard shows several pipelines and jobs (visible statuses, last build times, durations):

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-ci-dark-dashboard-pipelines.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=557ec51ea446f04f2b5ba2c33a9c9378" alt="A Jenkins continuous-integration dashboard in dark mode showing several pipeline jobs with status icons, last success/failure times, and durations. The left sidebar displays navigation items like New Item, Build History, and Build Queue." width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-ci-dark-dashboard-pipelines.jpg" />
</Frame>

## Quick configuration summary

| Item                   | Value                                              |
| ---------------------- | -------------------------------------------------- |
| Jenkins home directory | `/var/lib/jenkins`                                 |
| Controller executors   | `2`                                                |
| Jenkins URL            | Configured in System Settings (UI)                 |
| Controller version     | `2.504.1`                                          |
| Common job types       | Freestyle, Declarative Pipeline, Scripted Pipeline |
| Typical triggers       | Poll SCM, SCM webhooks                             |

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-system-settings-home-executors-2.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=b1cef406c7c761aa2638b665a9a79d05" alt="A dark-themed Jenkins &#x22;System&#x22; settings page. It shows the Jenkins home directory (/var/lib/jenkins), a system message box, executors set to 2, and Save/Apply buttons." width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-system-settings-home-executors-2.jpg" />
</Frame>

## Installed tools and notable plugins

This environment is primarily used for Node.js-based pipelines. High-level tools and plugins observed:

| Tool / Plugin                                      | Purpose                                                   |
| -------------------------------------------------- | --------------------------------------------------------- |
| Node.js installer                                  | Provides Node runtime for builds                          |
| OWASP Dependency-Check (`dependency-check 12.1.1`) | Dependency vulnerability scanning                         |
| Sysdig-related tool                                | Security/monitoring integrations                          |
| Local Docker                                       | Image build/push during pipelines                         |
| Various Jenkins plugins                            | Pipeline, SCM, JUnit, and others (some updates available) |

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-tools-owasp-depcheck-install-1211.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=30cad84d5437fd58c366842bc256b5c5" alt="A dark‑theme screenshot of the Jenkins &#x22;Manage Jenkins → Tools&#x22; configuration page showing an OWASP-DepCheck tool entry. The &#x22;Install automatically&#x22; box is checked and the installer is set to &#x22;dependency-check 12.1.1&#x22;, with Add Docker, Save and Apply buttons visible." width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-tools-owasp-depcheck-install-1211.jpg" />
</Frame>

Plugin updates are visible in the UI; consider reviewing change logs before upgrading plugins during a migration:

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=43b89b954f1fc06ae18dc84804c81916" alt="A screenshot of the Jenkins web UI on the Plugins > Updates page showing a list of plugins available for update (e.g., bouncycastle API, commons-text, JUnit, Pipeline Graph Analysis). The interface includes a search bar, an &#x22;Update&#x22; button, and navigation links on the left." data-og-width="1920" width="1920" data-og-height="1080" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?w=280&fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=c846b051416528c2bb515096a8a0a174 280w, https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?w=560&fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=1de8b998877a1603d20af342d747a249 560w, https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?w=840&fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=3bce6fc038cb6bda5c6e7832eaea0f04 840w, https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?w=1100&fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=24d390205a264f2d432590be3bd0fa39 1100w, https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?w=1650&fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=7dd22e802e68d0f4caff7aef51f1db10 1650w, https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-plugins-updates-page.jpg?w=2500&fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=54b4a0453301ad0ac326d912757047ac 2500w" />
</Frame>

## Nodes and agents

* The built-in controller node provides two executors.
* There is an additional agent named `us-west-1-ubuntu-22`, which was offline at the time of inspection.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-nodes-offline-ubuntu-22.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=2187d5e3a2ab62df157464c7f2dd957d" alt="A screenshot of the Jenkins &#x22;Nodes&#x22; management page in dark theme showing a Built-In Node (Linux amd64) with free disk/swap stats and an offline agent named &#x22;us-west-1-ubuntu-22&#x22; reporting N/A metrics. The top toolbar shows a &#x22;New Node&#x22; button and the logged-in user &#x22;siddharth.&#x22;" width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-nodes-offline-ubuntu-22.jpg" />
</Frame>

### Connecting the agent manually

In this environment the controller is not configured for HTTPS agent communication, so the agent is launched manually using the agent JAR. On the agent host:

```bash theme={null}
# Download the agent jar from the controller
curl -sO http://139.84.149.70:8080/jnlpJars/agent.jar

# Store the agent secret in a file (replace with the real secret, securely)
echo "REPLACE_WITH_AGENT_SECRET" > secret-file

# Start the agent using the secret stored in a file
java -jar agent.jar -url http://139.84.149.70:8080/ -secret @secret-file -name "us-west-1-ubuntu-22" -webSocket -workDir "/home/jenkins-agent"
```

<Callout icon="warning" color="#FF6B6B">
  Never commit agent secrets, API tokens, or other credentials into source control. Use credential managers, secret stores, or environment-specific secret injection. Limit token scope and expiry.
</Callout>

After starting the agent it should connect and report a single executor, its remote root directory, and labels. Jobs targeting the agent label will run on this node.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-agent-config-uswest1-ubuntu22.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=25fc24a787e48897fcd059d61cf9647f" alt="A dark-themed Jenkins node configuration page for the agent &#x22;us-west-1-ubuntu-22,&#x22; showing fields like Description, Number of executors (1), Remote root directory (/home/jenkins-agent), Labels, and Save/Apply buttons. The left sidebar lists agent actions (Delete Agent, Configure, Build History, etc.) and a Build Executor Status panel." width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-agent-config-uswest1-ubuntu22.jpg" />
</Frame>

## Security and credentials

* Authentication: Jenkins own user database (internal user store).
* Current UI user: `Siddharth`.
* API tokens in use to authenticate automation (e.g., tokens named `gh-1`).

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-security-api-token-settings.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=7d96cab813c30bdd5a50be0d5d2abbbf" alt="A screenshot of the Jenkins web interface on the &#x22;Security&#x22; settings page, showing API token management (a token labeled &#x22;gh-1&#x22; and an &#x22;Add new Token&#x22; button) and password/confirm password fields with Save/Apply buttons. The dark-themed layout includes a left navigation menu with items like Status, Builds, Account, and Security." width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-security-api-token-settings.jpg" />
</Frame>

### Credentials stored in Jenkins

Several credentials are scoped in Jenkins credential stores and referenced by pipelines:

|                                Credential | Use                                     |
| ----------------------------------------: | --------------------------------------- |
|    `mongo-db-credentials` (user/password) | Used in unit tests and coverage stages  |
| `mongo-db-username` / `mongo-db-password` | Test DB access                          |
|                  `docker-hub-credentials` | Pushing Docker images                   |
|                 OWASP DepCheck credential | Used by Dependency-Check where required |

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/iRlNGmU-DLlt2Ghu/images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-credentials-admin-stores-list-dark.jpg?fit=max&auto=format&n=iRlNGmU-DLlt2Ghu&q=85&s=3d16573af6a99961146f88d2c9b46081" alt="A screenshot of the Jenkins &#x22;Credentials&#x22; administration page showing a list of stored credentials (e.g., mongo-db-credentials, mongo-db-username, mongo-db-password, docker-hub-credentials) and credential stores scoped to the system. The UI is in dark theme with navigation breadcrumbs at the top." width="1920" height="1080" data-path="images/Migrating-Jenkins-Pipelines-to-GitHub-Actions/Analyze-Your-Existing-Jenkins-Pipelines/Demo-Review-Existing-Jenkins-Instance/jenkins-credentials-admin-stores-list-dark.jpg" />
</Frame>

When migrating pipelines to GitHub Actions (or another CI), plan to:

* Re-create necessary secrets in the target CI secrets store.
* Avoid copying credentials verbatim—rotate tokens where possible.
* Map Jenkins credentials to corresponding environment names (e.g., `DOCKERHUB_TOKEN`, `MONGO_USER`, `MONGO_PASS`).

<Callout icon="lightbulb" color="#1CB2FE">
  Tip: Inventory every credential referenced by jobs (check pipeline scripts and Freestyle build steps). Use a spreadsheet or small manifest to record each credential name, where it’s used, required scope, and a recommended replacement in the target CI.
</Callout>

## Summary and next steps

* The controller is a standard Jenkins installation with one connected agent (and one offline agent at audit time).
* Key tools and plugins (Node.js installer, Dependency-Check, Docker) are in use; some plugins show available updates.
* Credentials and API tokens exist and will need to be re-created in the target CI. Do not migrate secrets directly—use secure secret tooling and rotate credentials after migration.
* Next: inspect each project in turn, run representative builds to validate behavior, then begin mapping pipeline steps to GitHub Actions workflows or the target CI solution.

## Links and references

* Jenkins Agents & Remoting: [https://www.jenkins.io/doc/book/using/agents/](https://www.jenkins.io/doc/book/using/agents/)
* Jenkins JNLP agent details: [https://www.jenkins.io/doc/book/managing/nodes/](https://www.jenkins.io/doc/book/managing/nodes/)
* OWASP Dependency-Check: [https://owasp.org/www-project-dependency-check/](https://owasp.org/www-project-dependency-check/)
* Jenkins Plugins: [https://www.jenkins.io/doc/book/managing/plugins/](https://www.jenkins.io/doc/book/managing/plugins/)
* Secure secret management: GitHub Actions Secrets — [https://docs.github.com/actions/security-guides/encrypted-secrets](https://docs.github.com/actions/security-guides/encrypted-secrets)

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/migrating-jenkins-pipelines-to-github-actions/module/4ff3a393-a622-48d3-a0b5-4fb312c6c0a2/lesson/89003f1c-027f-459f-af5c-d9f03642bfa1" />

  <Card title="Practice Lab" icon="flask-conical" cta="Learn more" href="https://learn.kodekloud.com/user/courses/migrating-jenkins-pipelines-to-github-actions/module/4ff3a393-a622-48d3-a0b5-4fb312c6c0a2/lesson/b31417fe-5d54-4a7d-94e6-a2e48bde80e6" />
</CardGroup>
