NodeJs Forum News

2014년 12월 10일 수요일

Chef-like tool powered by node.js?

I googled a bit but did not find anything like it. Did anyone consider it?

Cool features would be:

* It's JavaScript
* Windows is fully supported (Ruby isn't great on Windows).




nodejitsu has opensource a tool like this called opsmezzohttp://www.opsmezzo.com/
haven't tried yet.
We use Puppet a lot.



Thinking about it under the name qop.



Thanks José and Aria. I took a quick look at opsmezzo. I'm actually more interested by the cookbooks/recipe side than by the infrastructure and I did not find it yet but I'll dig further.




What I like about puppet (the DSL) is that it describes an "state of the configuration a node should have" rather than "a recipe" to get there.

It is at some point the same difference between imperative and declarative. It means "node v0.8.26" instead of "download node 0.8.26 binary from this url and then copy the files to this path",
Having said that I think a DSL can be build in JavaScript or JSON and npm will be such a great repository for these modules/components. Puppet and chef are very consolidated opensource tools with a huge community around, lot of libraries and such. Amazon has this OpsWorks thing based on Chef  http://aws.amazon.com/opsworks/which I haven't tried but looks very promising.
I wrote a little bit about how we use Puppet in Auth0 here:http://inside.auth0.com/2013/09/13/shiping-auth0/



Hey Bruno, checkout out some of the systems that we have here. This might be closer to what you are looking for. We use the cli toolquill (with composer as the api endpoint) to install and manage these systems as well as the configuration that can go with them. Hop in #nodejitsu IRC if you have any questions. You can ping me @jcrugzz.



Checkout nodemiral. I have not yet released yet. 
https://github.com/arunoda/nodemiral

Build for a cloud automation service. Works pretty well. 



Simalar to the Chef resource lib, I build [mecano](https://github.com/wdavidw/node-mecano).

I use it daily to deploy hadoop cluster.



Thanks to all. My review list is growing.

My main use case is building setups by updating source trees from git, launching compilers (sometimes on remote machines because I need binaries for several OSes), downloading stuff from internet, etc. I did not really need all the power of Chef for this but I really liked the "idempotent" nature of their DSL and the richness of providers. We are doing it with Chef today but their poor support of Windows is a bit problematic (not a showstopper though) so I was looking for alternatives.

Looks like mecano could be a good starting point for what I want to do and that opsmezzo covers the more complete Chef story.

Small note for David: I noticed a s/navite/native typo in http://www.adaltas.com/projects/node-mecano/



Have used Puppet, Chef, Chef Solo, Fabric ... 

Ansible is the way to go. Much simpler than other provisioning tools. No need to install anything on the server. Windows support is iffy (Cygwin) though. Supposedly you can write modules in anything, Shell, Python, Ruby, etc so I don't see why you couldn't use node. Haven't needed to write a module yet. I use good old shell scripts when needed.



Hi Bruno and others-

Any updates? I know this is an older post, but it's still very relevant. I'd like your input.

I am also looking into the different solutions to keep things as "node.js friendly" as possible.

From what I've seen, most people are moving to salt:
http://docs.saltstack.com/en/latest/

Of all the salt vs ansible reviews, people say salt is better but has a steeper learning curve.

It's Python-based but uses YAML, so it's pretty friendly to node.js coders. There's definitely some pythonic error messages that, if I didn't know Python, could have led me astray in the initial setup.

I'm now looking for into OpsMezzo and others. Any comments?



Hi Bruno and others-

Any updates? I know this is an older post, but it's still very relevant. I'd like your input.

I am also looking into the different solutions to keep things as "node.js friendly" as possible.

From what I've seen, most people are moving to salt:
http://docs.saltstack.com/en/latest/

Of all the salt vs ansible reviews, people say salt is better but has a steeper learning curve.

It's Python-based but uses YAML, so it's pretty friendly to node.js coders. There's definitely some pythonic error messages that, if I didn't know Python, could have led me astray in the initial setup.

I'm now looking for into OpsMezzo and others. Any comments?



> Hi Bruno and others-
>
> Any updates? I know this is an older post, but it's still very relevant. I'd like your input.
>
> I am also looking into the different solutions to keep things as "node.js friendly" as possible.
>
> From what I've seen, most people are moving to salt:
> http://docs.saltstack.com/en/latest/
>
> Of all the salt vs ansible reviews, people say salt is better but has a steeper learning curve.
>
I evaluated Salt and Ansible (and a bunch of others, including Propagit, Fleet (not CoreOS), etc) and found them (even in comparison to Chet/Puppet/etc) too complex for my needs. So I settled instead on Flightplan: https://github.com/pstadler/flightplan, which I have customised heavily for my usage.

Unfortunately, I did not take any notes that detail my reasons for abandoning Ansible, etc. Apologies for not being able to give you that,



So, here's my conclusion:

I will present my findings to my boss, but my current recommendation is Salt. I'm really hoping I'm wrong on this and that a more robust node-based system management system will come out.

Quick comparison, and correct me if I'm wrong.
Salt
- Best choice at this time, tho it's rapidly changing market.
- Python-based. Watch out for "gaierror" it usually means an internal socket error or DNS error, not a config error.
- Uses YAML for configs, so easy for any node programmer.
- In this review, by Lyft, which is a very rapidly growing company, it was chosen over Ansible:
http://ryandlane.com/blog/2014/08/04/moving-away-from-puppet-saltstack-or-ansible/
https://news.ycombinator.com/item?id=8134079

OpsMezzo
- Documentation seems to be outdated and lacking. There's little community participation. I can't, at this time, see how to use it to launch EC2 instances on demand. I think it's still in development or intended for a more limited scope. I messaged Nodejitsu and we'll see.

Others
Node Mecano
https://github.com/wdavidw/node-mecano
- Great for automation via SSH, but does not manage state or EC2.
- Would need a lot more work to manage everything we need.
Nodemiral (Node Admiral)
https://github.com/arunoda/nodemiral
- Even more basic than Node Mechano, but simple.
- Doesn’t manage state or deployment.
FlightPlan
https://github.com/pstadler/flightplan
Could combine this with the official Amazon AWS Node.js API (not so great) or with a helper library, like:
https://github.com/defunct/node-ec2
It would be a lot of work, but definitely doable to make those into full systems like salt.



CJ Silverio gave a presentation at BayNode about NPM, Inc devops and pointed out that they are using Ansible.






OthersNode Mecano
https://github.com/wdavidw/node-mecano
- Great for automation via SSH, but does not manage state or EC2.
- Would need a lot more work to manage everything we need.
I'm the author of mecano

masson, under active development, is probably what you are looking for. The documentation will be written just after the one of ryba.
https://github.com/wdavidw/node-masson

ryba and ryba-cluster (a configured ryba deployment example), the reason behind mecano and masson, are good example on how to use those. Ryba extends masson to deploy a hadoop cluster. The documentation should be ready in january.
https://github.com/ryba-io/ryba
https://github.com/ryba-io/ryba-cluster

All those projects are under active dev since 2 years now. We are now 2 persons behind and would be gratefull to get feedback. You are invited to participate.


작성자: Unknown 시간: 오후 8:44
이메일로 전송BlogThis!X에 공유Facebook에서 공유Pinterest에 공유

댓글 없음:

댓글 쓰기

최근 게시물 이전 게시물 홈
피드 구독하기: 댓글 (Atom)

프로필

Unknown
전체 프로필 보기

블로그 보관함

풍경 테마. Powered by Blogger.