A simple tool for an agent less continuous deployment bot.
This project is under conception, if you would like to see it alive, **star it**.
1- Node.js likes I/O !! provisionning is all about input and ouput.
2- Lets handle multiple long processes and concurencial access easily.
3- promisses and events are perfect for dependencies and notifications
./deploy-bot.json or /etc/deploy-bot.json
{
"host": {
"host": "host.lan",
"username": "user",
"privateKey": "/home/user/.ssh/id_rsa"
}
}then run tasks:
deploy-bot -r uptime hostShell=require('deploy-bot/shell');varshell=newShell();shell.connect('host',function(shell){console.log(shell.banner);shell.disconnect();});bot.registerTask('node-mondodb',function(shell){returnQ([shell.install('yum',['nodejs','mongodb']),shell.install('gem','foreman')]).all();});bot.registerTask('conf',function(shell){returnQ([shell.install('yum','mongodb').then(function(){returnshell.run('rm -rf /tmp/*');}),shell.user({// not yet implementedname: 'appuser',home: '/var/lib/app',group: 'users'}),shell.file('/etc/logrotate.d/mongodb',{template: 'mongodb/logrotate'}),shell.file('/etc/mongod.conf',{template: 'mongodb/conf'})]).all();});- Testable
- Migrable, profile version
- Profiles: aptitude, pacman
- simple cmd interface
- simple web gui
- Hubot adapter
- host "state" object attribute in host config
- host "base" attribute for merge target host "state" in host config