Home > other >  How can I run shell commands on another server from Jenkins service?
How can I run shell commands on another server from Jenkins service?

Time:10-08

I have a node project with pm2 I want to create a shell script on Jenkins to triger the build I have watched a lot of tutorials but i cant seem to find any good way to fix the problem.

Here is what I have tried

ssh   -tt -i privKey username@ip/backend 
npm install
node server.js

Here what I need to do

1.Connect to the server
2.Run npm install
3.Reload pm2.json

But the shell script is failing to connect to the server and to run the script

CodePudding user response:

 ssh -o StrictHostKeyChecking=no -tt -i privKey username@ip  <<EOF       
     cd backend
     npm install
     node server.js
     pm2 reload pm2.json
     echo 'Process completed successfully.'
     exit      
    EOF
  1. Sometimes when connecting through ssh tunnel, changing directory can cause premission access problems, so first connect to server than change directory.
  2. StrictHostKeyChecking=no: The option StrictHostKeyChecking specifies whether or not ssh will automatically add new host keys to the $HOME/.ssh/known_hosts file, or never automatically add new host keys to the host file. This option, when set to yes, provides maximum protection against Trojan horse attacks.
  3. <<EOF - End of line, used for multi-line shell command.
  4. cd backend - changes directory to backend after connectiong to server.
  5. echo: Prints a string to know when this process is finnished.
  6. exit: to exit out of server's shell
  • Related