# Jenkins Setup for Automation

## Overview

This tutorial will guide you through the step by step procedure to set up Jenkins on a ubuntu machine for automation purposes.

Connect to the remote machine using SSH and follow the steps mentioned below.

## Install Java 8

* sudo apt update
* sudo apt-get install openjdk-8-jdk
* java -version

## Install Jenkins

* sudo wget -q -O - <https://pkg.jenkins.io/debian-stable/jenkins.io.key> | sudo apt-key add -
* sudo sh -c 'echo deb[ <img src="https://www.jenkins.io/sites/default/files/jenkins_favicon.ico" alt="" data-size="line">Debian Jenkins Packages](http://pkg.jenkins.io/debian-stable) binary/ > /etc/apt/sources.list.d/jenkins.list'
* sudo apt update
* sudo apt install jenkins
* sudo systemctl start jenkins
* sudo systemctl status jenkins (should be active)

#### Install and setup apache2 for Jenkins

* sudo apt install apache2
* sudo a2enmod proxy
* sudo a2enmod proxy\_http
* sudo a2enmod headers
* **sudo vi /etc/apache2/sites-available/000-default.conf** and add following code inside **VirtualHost** xml tag:

```
##### ############################################################ ####
##### ============================================================ ####
##### The Build Business Websites Jenkins and Apache Configuration ####
##### ============================================================ ####
##### ############################################################ ####

ProxyPass         /jenkins  http://localhost:8080/jenkins nocanon
ProxyPassReverse  /jenkins  http://localhost:8080/jenkins

ProxyRequests     Off
AllowEncodedSlashes NoDecode

<Proxy http://localhost:8080/jenkins*>
  Order deny,allow
  Allow from all
</Proxy>

##### ============================================================ ####
##### ############################################################ ####
```

* **sudo vi /etc/default/jenkins** and make sure

```
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --prefix=/jenkins"
```

* sudo systemctl restart jenkins
* sudo systemctl restart apache2
* Open port 80 of the remote machine to make it accessible from the local machine

## Setup Jenkins

* sudo vi /var/lib/jenkins/secrets/initialAdminPassword
* copy the initial password inside the file
* now open remote-host-ip/jenkins in local browser
* paste the password, select the required plugin to install and start the installation

> [![Creative Commons License](https://i.creativecommons.org/l/by/4.0/80x15.png)\_\_](http://creativecommons.org/licenses/by/4.0/)*All content on this page by* [*eGov Foundation* ](https://egov.org.in/)*is licensed under a* [*Creative Commons Attribution 4.0 International License*](http://creativecommons.org/licenses/by/4.0/)*.*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digit.org/local-governance/deploy/configure-digit/qa-automation/jenkins-setup-for-automation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
