Jenkins CI with EC2

Lets push code to EC2 Remote Server from Jenkins Build Server

Connecting with EC2 from Jenkins

If you want to run commands on the AWS EC2 Instance tool using Jenkins, this blog can help you to connect your self-hosted Jenkins with AWS EC2 Instance, using the SSH remote host plugin provided by Jenkins.

Pre-requisites

  1. One Up & Running AWS – EC2 Instance

  2. One UP & Running Jenkins Server

  3. AWS EC2 Public IP Address

  4. AWS EC2 Pem File

Step 1

  • Go to: Jenkins -> Manage Jenkins -> Manage Plugins -> Available Tab

  • Search For ‘SSH Plugin

  • Download and Install that Plugin

The plugin shall appear in the installed tab.

Step 2

  • Go to: Jenkins -> Manage Jenkins -> Configure System

Now “SSH remote hosts” option will appear on this page.

  • “Add” button will appear in the SSH remote hosts section.

  • This plugin can connect multiple EC2 Instances.

  • Add button will ask for a number of parameters as described in the image above.

Parameter Values

  • Hostname: Public IP of EC2 Instance or any Domain name of EC2 Instance

  • Port: 22 ‘Because 22 Port is for SSH Connections’

  • pty, serverAliveInterval, timeout: put the value as described in above image

  • Need to Add Credentials by clicking Add button next to Credentials Drop Down.

Step 3

  • Add Credentials Popup will appear as explained in the image above.

Parameter Values

  • Kind: SSH Username with Private Key

  • Scope: Global

  • Username: ec2-user ‘or Any Username of your AWS EC2 Instance’

  • Private Key: Select ‘Enter directly’. Here we will add Pem file

    • Key: Open Pem file with text -> Copy Content -> Paste here.

  • Passphrase: leave it blank

  • ID: leave it blank

  • Description: Put any Name for your Connection.

Step 4

  • Back to SSH remote hosts in Manage Jenkins -> Configure System.

  • Select the credentials that you created recently.

  • Then hit ‘Check Connection’ Button.

Publish Code to EC2

Step 1 : Configure correctly a jenkins job ready to build your app in remote ec2 machine.

  • Install this plugin in your jenkins platform : Publish Over SSH Plugin

  • Using this plugin add new remote server under Publish over SSH section in Manage Jenkins >> Configure System option.

  • Now create some jenkins job. Then, in build section add a step called : Send files or execute commands over SSH

Last updated