Jenkins CI with EC2
Last updated
Last updated
Lets push code to EC2 Remote Server from Jenkins Build Server
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.
One Up & Running AWS – EC2 Instance
One UP & Running Jenkins Server
AWS EC2 Public IP Address
AWS EC2 Pem File
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.
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.
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.
Add Credentials Popup will appear as explained in the image above.
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.
Back to SSH remote hosts in Manage Jenkins -> Configure System.
Select the credentials that you created recently.
Then hit ‘Check Connection’ Button.
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