israelroldan / grunt-ssh

SSH, SFTP tasks for Grunt.
https://npmjs.org/package/grunt-ssh
MIT License
244 stars 70 forks source link

Could support multiple remote servers connection? #114

Open yuezheng opened 9 years ago

yuezheng commented 9 years ago

If I have multiple servers, I want execute same commands for all servers. How can I do? I think convenient in following way:

  1. Define the secret file like: { "server_1": {"username": "root"}, "server_2": {"username": "root"}
    }
  2. Config task at Gruntfile.js like:
sshconfig: {
    "server_1": grunt.file.readJSON('secret.json')['server_1'],
    "server_2":grunt.file.readJSON('secret.json')['server_2']
}
sshexec: {
    task: {
        command: ['ls -la'],
        options: {'config': ['server_1', 'server_2']}
     }
}
nbonamy commented 9 years ago

:+1:

chrislondon commented 8 years ago

You could probably do something like this:

// grunt.initConfig
sshconfig: {
    "server_1": grunt.file.readJSON('secret.json')['server_1'],
    "server_2": grunt.file.readJSON('secret.json')['server_2']
}
sshexec: {
    task: {
        command: ['ls -la']
     }
}
grunt.registerTask('list_multiple', function() {
    var servers = ['server_1', 'server_2'];
    for (var i in servers) {
        grunt.option('config', servers[i]);
        grunt.task.run(['sshexec:task']);
    }
});

I haven't tested this so please feel free to reply back if it works for you or not.