DEV Community

Jasper Rodda
Jasper Rodda

Posted on • Edited on

How to spin up an EC2 instance on AWS and install Jenkins.

  1. Spin up EC2 instance on AWS
  2. SSH into EC2 instance
  3. Install Jenkins on Ubuntu LTS

Step 1 : Spin up EC2 instance on AWS

Click link and follow instructions to spin up EC2 instance on AWS

Step 2 : SSH into EC2 instance

  • Click link and follow instructions to SSH into EC2 instance or
  • If you are on windows and want to connect to EC2 instance follow instructions.

Prerequisite: Downloading .pem file is mandatory while creating an EC2 instance. Otherwise, you will not be able to SSH to EC2 instance from your Mac/Windows/Linux.

  1. Download mobaxterm on windows.
  2. Unzip file and install on windows.
  3. Click on Sessions -> New Sessions --> SSH -->
  4. Enter public IP address of EC2 instance in "remote host" input text box
  5. Click checkbox "specify username" as "ubuntu"
  6. click on "Advanced SSH settings"
  7. Click checkbox "use private key" and locate .pem file in "downloads" folder.

 Settings in mobaxterm to SSH to EC2 instance

Step 3 : Install Jenkins on Ubuntu LTS

  1. Click on "Linux"--> Debian/Ubuntu section.
  2. Update Ubuntu sudo apt update
  3. Install java in Ubuntu sudo apt install openjdk-17-jre or To install Openjdk 11 in Ubuntu (VM VirtualBox), the following commands worked well.

    sudo add-apt-repository ppa:openjdk-r/ppa
    sudo apt-get update
    sudo apt install openjdk-11-jdk

  4. verify java java --version

  5. Install Jenkins

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \ /usr/share/keyrings/jenkins-keyring.asc > /dev/null echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/null sudo apt-get update sudo apt-get install jenkins 
Enter fullscreen mode Exit fullscreen mode
  • verify Jenkins installed sudo systemctl status jenkins or run ps -ef | grep jenkins
ubuntu@ip-10-0-0-27:~$ ps -ef | grep jenkins jenkins 4973 1 7 19:55 ? 00:00:59 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 ubuntu 5240 1458 0 20:08 pts/0 00:00:00 grep --color=auto jenkins 
Enter fullscreen mode Exit fullscreen mode
jenkins.service - Jenkins Continuous Integration Server Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-08-31 02:55:51 UTC; 1h 29min ago Main PID: 8548 (java) Tasks: 40 (limit: 1141) Memory: 492.5M CPU: 1min 11.340s CGroup: /system.slice/jenkins.service └─8548 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.478+0000 [id=243] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.479+0000 [id=243] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.550+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.554+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.906+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.910+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.914+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs Aug 31 03:10:03 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:03.937+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated Aug 31 03:10:04 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:04.282+0000 [id=244] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization Aug 31 03:10:04 ip-10-0-26-238 jenkins[8548]: 2023-08-31 03:10:04.289+0000 [id=73] INFO h.m.UpdateCenter$CompleteBatchJob#run: Completed installation of 81 plugins in 26 sec 
Enter fullscreen mode Exit fullscreen mode
  • Go to browser and enter public IP Address of EC2 instance.http:3.54.8.89:8080

If you do not see anything on browser then AWS default security group might turned off port '8080' which jenkins run on. You need to enable that.

  • open browser and type ip address of instance along with port number .http:3.54.8.89:8080

Image description

  • Go to "Mobaxterm" and view password --> type
    cat /var/lib/jenkins/secrets/initialAdminPassword

  • go to browser, copy & paste password onto admin field and click "continue"

  • There you go, you have successfully installed the jenkins CI/CD tool onto Ubuntu EC2 instance all by yourself. Congrats.

References:
Watch Video by Abhishek.Veeramalla

Top comments (0)