7 ms·
> Doing this with Chef would probably mean chasing down a knife plugin for adding Linode support, and would simply require a full Chef stack (say hello to Rabbi
by rurounijones 13y ago
> Doing this with Chef would probably mean chasing down a knife plugin for adding Linode support, and would simply require a full Chef stack (say hello to RabbitMQ, Solr, CouchDB and a gazillion smaller dependencies)
It is throwaway lines line that where you really need to be careful since, no, you don't need to RabbitMQ, solr, couchdb etc. You can just use chef-solo which can also be installed with a one liner (albeit running a remote bash script)
When comparing two products (especially in an obviously biased manner) you need to make sure you are 100% correct. Otherwise you weaken your case and comments like this one turn up.
- mpdehaan2 13y agoTrue, though chef-solo is a local-only solution. Ansible manages to manage remote machines without that kind of setup, and can start managing the remotes without installing anything on them.
- rurounijones 13y agoInstall chef-solo on server. scp locally dev'd (with vagrant ideally) cookbook to server Run cookbook 3 steps that can easily be wrapped in a little script (which I know a large company does because I saw their presentation about it on confreaks. Sorry I cannot remember the name of the company or presentation but it was a chef related one). Still not exactly killing it in terms of complexity. I would avoid comparing ansible to chef-solo in that respect and focus on bits where ansible has a clear (IMHO) win. Having said that I should say that I have not used ansible and am basing this on what I have read about it.
- andyhmltn 13y agoYou don't even need to do that. You can type `knife solo prepare root@my-server` and it will install chef-solo on that machine. Then type `knife solo cook root@my-server` and you're good to go.
- rurounijones 13y agoWell damn, I have been doing it wrong. That is awesome to know though. I wonder if anyone has done a http://todomvc.com/ http://todomvc.com/ equivalent for cfengine, puppet, chef, salt, ansible etc. Something like a simple webserver running Apache with mod_xsendfile, Passenger, Ruby 2.0.0, postgreSQL and a few firewall tweaks (why yes, I AM mainly a ruby developer, why do you ask?)
- westurner 13y agohttps://github.com/devstructure/blueprint https://github.com/devstructure/blueprint [generates] configuration sets for "Puppet or Chef or CFEngine 3." https://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software https://en.wikipedia.org/wiki/Comparison_of_open-source_conf... https://ops-school.readthedocs.org/en/latest/config_management.html https://ops-school.readthedocs.org/en/latest/config_manageme...
- kawsper 13y agoIs there a way to have multiple "roles" while using those commands? I mean all my servers are 70% identical and have the same base, and the DB have a few different packages than the app-servers for an example. I would hate to have two different chef-solo installations that basically does the same 70% of the time.
- andyhmltn 13y agoI think -r allows you to select roles IIRC. Not sure if it allows for multiple roles, but you can include roles within roles so you can make a role called 'web' that includes 'db','webserver' etc
- Axsuul 13y ago`knife solo bootstrap root@my-server` will run both prepare and cook commands.
- andyhmltn 13y ago
- andyhmltn 13y ago(Replying to this comment as I can't to the other for some reason) It is indeed! That'd be a brilliant idea actually. Sadly I only have a very minor amount of experience using chef. If you're interested though, I recently released our stack as a chef solo project at: https://github.com/FineIO/fine-io-chef https://github.com/FineIO/fine-io-chef
- insaneirish 13y ago3 steps that can easily be wrapped in a little script (which I know a large company does because I saw their presentation about it on confreaks. Sorry I cannot remember the name of the company or presentation but it was a chef related one). I think you're thinking of Ben Rockwood from Joyent: http://www.confreaks.com/videos/1684-chefconf2012-chef-behind-joyent-s-cloud http://www.confreaks.com/videos/1684-chefconf2012-chef-behin... If I recall, he made a comment to the effect of "Chef solo is great for really small deployments and really big deployments."
- tptacek 13y agoFrom the docs: chef-solo is a limited-functionality version of Chef and does not support the following: * Node data storage * Search indexes * Centralized distribution of cookbooks * Environments, including policy settings and cookbook versions * A centralized API that interacts with and integrates infrastructure components * Authentication or authorization * Persistent attributes
- tszming 13y agoThere is a project called "littlechef" which allow you to use part of the chef-server's features without chef-server. https://github.com/tobami/littlechef https://github.com/tobami/littlechef
- benatkin 13y agoIt doesn't seem to include node storage, so for example you'll need to include a mysql password because if it generates a random one, you won't be able to retrieve it. (This may have changed since last time I tried it.)
- mpdehaan2 13y agoI should point out that Ansible can store passwords on the filesystem here, using the 'password' lookup plugin. So while there is no database you can still easily access things exactly like this.
- mechanical_fish 13y agoI love how the first result when you google "chef-solo" is a list of all the things that it won't do for you, all of which are stated in jargon that a beginner cannot understand. It might be more direct to replace that page with a single sentence: "chef-solo: We're Not Interested And You Shouldn't Be Either." Or, might we consider compiling a friendly list of the great things chef-solo could do for you? I was going to work on that, but now I'm tinkering with Ansible instead.
- 13y ago
- sergiosgc 13y agoThe thing with one liners is that it is cool when they work, hell when they don't. I'm looking at replacing Puppet (because it's orders of magnitude too slow). Chef was a viable candidate, up until I tried installing it on two pristine installs (Scientific Linux 6 and, when it failed, Ubuntu Server). The instructions seem simple enough: http://docs.opscode.com/install_server.html http://docs.opscode.com/install_server.html but when you run: sudo chef-server-ctl reconfigure Chef goes into a frenzy of bootstrapping itself , installing a huge stack of dependencies, takes ages, only to fail with an obscure message in the end about one of its dependencies failing to start (RabbitMQ, if I recall correctly). Can I work around the failure? Sure! But what does it tell you about a piece of software that its installer fails on two pristine different and common linux distributions? To me, it tells me that it is over-complex and poorly engineered. So, from a different perspective, I really identify with the "gazillion smaller dependencies" comment. I helps me little that chef-solo is simple. I don't want chef-solo. I want a full config management distributed solution that is dependable (which probably requires lean). My next candidate is Salt, and so far it looks good.
- nagrom 13y agoI'm curious - for what do you use SL? I had tried it at v4 and it did not seem superior to a 'standard' Fedora install at that time, even for scientific analyses (ROOT and GEANT were no different to install IIRC and there wasn't the same healthy package system that comes with Fedora). Has it improved in some way since then?
- sergiosgc 13y agoIt's an historic left-over. My company uses CentOS, and back in the days of the transition to v6, CentOS was delayed. SL6 came out at the right time and we switched. SL is basically the same as CentOS: a community version of RHEL.
- AjithAntony 13y agoThat's exactly why I'm on SL6. The delay, and better maintenance prospects with SL than CentOS as Fermilab is committed to the project. (I don't think we work at the same place, there aren't any likely Sergio's in the corporate directory)
- nosequel 13y agochef-solo does require ruby > 1.8.7, rubygems and many gems though. Their argument for ansible is that it only needs basic python which is installed by default on most systems.
- nbouscal 13y agoPython and Ruby are located at basically the exact same point in programming language space, so to me they're pretty interchangeable. Since these are Ops tools, the argument that anything is 'installed by default' scares me. Nothing should be installed by default; choosing what is installed and how it gets installed is one of the major responsibilities of the Ops team.
- mpdehaan2 13y agoThis is more of a function of so many utilities written by Red Hat and Canonical folks use (and require) Python. And that's part of the reason Python is so popular among systems applications. One of the earlier starts to this was the system-config-* toolchain, and of course Anaconda (which isn't so much installed, but a great example).
- hosh 13y agoChef 11 doesn't use Couchdb, though it uses those other dependencies. However, you do not go and install those dependencies. You install a single package that includes all of that. Chef client does not require RabbitMQ, Solr, or CouchDB. It too has an omnibus package that embeds all the dependencies and isolates it from the system. Both server and client are now one-line installs as well.