- Published on
Setup target instance to allow Jenkins deploy to
- Authors
- Name
- PatharaNor
THIS PART FORCUSING ON TARGET SERVER ONLY.
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.