Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 2.04 KB

README.md

File metadata and controls

77 lines (56 loc) · 2.04 KB

nci ssh node

SSH node for nci.

This plugin allows to execute build on remote host via ssh.

Build Status

nci host requirements

This plugins requires only ssh client which should accessible as ssh command for user from which nci was started.

Remote host requirements

  • running ssh server
  • git client >= 1.9 (only for building git projects)
  • mercurial client >= 2.8 (only for building mercurial projects)

Installation

npm install nci-ssh-node

Usage

Add this plugin to the plugins section at server config, configure specific node by adding it to nodes section e.g.:

    "plugins": [
        "nci-ssh-node"
    ],
    "nodes": [
        {
            "type": "ssh",
            "name": "localNetworkRemote",
            "usageStrategy": "maximum",
            "maxExecutorsCount": 3,
            "options": {
                "host": "192.168.0.1",
                "user": "ci",
                "identityFile": "/home/ci/.ssh/id_rsa_test",
                "baseDir": "/var/tmp/nci/data/projects"
            }
        }
    ],

After that localNetworkRemote node will be used for building projects according to usageStrategy. During build nci will run commands at options.host as options.user trying to authenticate using options.identityFile. options.baseDir at localNetworkRemote will be used as base for storing project workspaces.

For correct escaping inside your build steps please use double quotes for command arguments e.g. use echo "1 2 3" not echo '1 2 3'.

Also note that it will be non-interactive ssh session, some linux distributions comes with ~/.bashrc which prevents it's loading in this case, e.g. default ~/.bashrc on ubuntu 14.04 contains:

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

So if you care about ~/.bashrc been loaded for nci session please check it out on remote host.