Published on

Setup target instance to allow Jenkins deploy to

Authors
  • avatar
    Name
    PatharaNor
    Twitter

setup-target-inst-for-jenkins-thumbnail

THIS PART FORCUSING ON TARGET SERVER ONLY.

avatar
PatharaNor
Tech Writer

Create credential in Jenkins

Create SSH key on target machine with RSA type (using -t to identify encrypt type)

ssh-keygen -t rsa

It will generate id_rsa and id_rsa.pub in folder ~/.ssh:

...
-rw------- 1 username username 1675 Aug  1 16:16 id_rsa
-rw-r--r-- 1 username username  420 Aug  1 16:16 id_rsa.pub
...

Copy content of public key or id_rsa.pub to authorized_keys by

# In ~/.ssh directory
cat id_rsa.pub >> authorized_keys

For id_rsa or private key, we will copy content in id_rsa to text box when create credential in Jenkins.

# example id_rsa content
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAtuwxg9eWuFS+ZXa6JXusfp7pncmycT5yEB2sOVfXseC2v6c9
5hLldmOu7b8B5mIZZAvz8fxl+8sp8T48iuuk3SQaMq3RIIxoaF2qpBe78wvXTFtb
538P...................................................gsCW0hV7R
lF7dAoGAb+KH6UUUiQZp3YM3nQabresdAbw8IM3nDebTPBOJiWihYx6TsfHkzPoH
HQpWGiFVggr/mZH7v04sdyw/xzUM29VyeFz93aGYtEZFpU2MwBaz8233wZMSbfa5
KmgYibbEWCh1xbQNaJ9mMg+F1dQecZxiBXYW2OYufhHBDaSOa2c=
-----END RSA PRIVATE KEY-----

File Permission

Your authorized_keys and ~/.ssh should set permission look like below:

~/.ssh/authorized_keys file :

chmod 600 authorized_keys

.ssh folder

chmod 700 ~/.ssh

After that switch to Jenkins, go to :

http://YOUR_JENKINS_IP:YOUR_JENKINS_PORT/credentials/store/system/

click on Global credentials (unrestricted) then click on Add Credentials to create credential of each target machine.

Example :

Kind        : SSH Username with private key
Scope       : Global (Jenkins, nodes, items, all child items, etc)
Username    : YOUR_USERNAME_OF_TARGET_MACHINE
Private Key : select on "Enter directly"
Key         :
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAtuwxg9eWuFS+ZXa6JXusfp7pncmycT5yEB2sOVfXseC2v6c9
5hLldmOu7b8B5mIZZAvz8fxl+8sp8T48iuuk3SQaMq3RIIxoaF2qpBe78wvXTFtb
538P...................................................gsCW0hV7R
lF7dAoGAb+KH6UUUiQZp3YM3nQabresdAbw8IM3nDebTPBOJiWihYx6TsfHkzPoH
HQpWGiFVggr/mZH7v04sdyw/xzUM29VyeFz93aGYtEZFpU2MwBaz8233wZMSbfa5
KmgYibbEWCh1xbQNaJ9mMg+F1dQecZxiBXYW2OYufhHBDaSOa2c=
-----END RSA PRIVATE KEY-----
Passphrase  : LET_EMPTY
ID          : LET_EMPTY
Description : YOUR_DESCRIPTION

Allow Jenkins create folder on target directory, example /app/ :

sudo chown $USER:$USER app opt

Now your Jenkins should be accessable this instance.