diff options
| author | Franck Cuny <franck.cuny@gmail.com> | 2016-08-10 14:33:04 -0700 |
|---|---|---|
| committer | Franck Cuny <franck.cuny@gmail.com> | 2016-08-10 20:17:56 -0700 |
| commit | 8d7d02f42c3947f756c18cb4d37d9d97fbd0d27d (patch) | |
| tree | a6cecddaaea7e87d901a6c28bebe3a531438f24b /posts/2012-11-27-ansible-and-chef.org | |
| parent | Merge branch 'convert-to-org' (diff) | |
| download | lumberjaph-8d7d02f42c3947f756c18cb4d37d9d97fbd0d27d.tar.gz | |
convert back to md
Diffstat (limited to 'posts/2012-11-27-ansible-and-chef.org')
| -rw-r--r-- | posts/2012-11-27-ansible-and-chef.org | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/posts/2012-11-27-ansible-and-chef.org b/posts/2012-11-27-ansible-and-chef.org deleted file mode 100644 index c077cbf..0000000 --- a/posts/2012-11-27-ansible-and-chef.org +++ /dev/null @@ -1,90 +0,0 @@ -I've been using [[http://www.opscode.com/chef/][Chef]] for some time -now, but it was always via [[http://vagrantup.com][Vagrant]], so a few -weeks ago I decided to get more familiar with it. A friend of mine had -set up a Chef server for his own use and was OK to let me use it for my -personal server. There was a four days weekend for Thanksgiving coming, -so it was the perfect occasion to take a better look at it, and to -re-install my Linode server with Chef. And since it was a really long -weekend, I also decided to take a look at -[[http://ansible.cc][ansible]], another tool to push stuff to your -server. - -I'm not going to talk about installation, configuration, set up and all -that kind of stuff, there's enough material available around (blog -posts, articles, books, etc). Instead, I will talk about my experience -and share my (very valuable) opinion (because, clearly, the world -deserve to know what I think). - -** Writing cookbooks for Chef - -For the few of you who don't know, cookbooks, in Chef's world, are a -group of files (templates, static files) and code that are used to -automate your infrastructure. Usually, you'll create a cookbook for each -of your application (one for nginx, one for MySQL, etc). - -I've a few services on my server (git, gitolite, Jenkins, graphite, -collectd, phabricator, ...), and I wanted a coobook for each of them. -I've started by looking for the one already existing (there's a lot of -them on GitHub, on the -[[https://github.com/opscode-cookbooks/][opscode's account]]), and I -tried to use them without any modification. Usually, a cookbook will let -you set some configuration details in your role or node to override the -defaults it provides (like the password for MySQL, or the path where to -put logs). So what I did was to set the interesting cookbook as a git -submodule in my cookbook repository. Unfortunately, for almost all of -them, I had to give up and import them in the repo, so I could edit and -modify them. - -That's probably my biggest complaint with cookbooks: I doubt code -re-usability is possible. You can use a cookbook as a base for your own -version, but either they are too generic; or sometimes you need a -workaround; or they do way too many things. And as a result, you need to -edit the code to make them behave the way you want. - -In my opinion, developers/ops should just publish -[[http://docs.opscode.com/essentials_cookbook_lwrp.html][LWRP]] -(Lightweight Resources and Providers) and templates, that's the only -thing that I can see as really re-usable (take a look at -[[https://github.com/dagolden/perl-chef][perl-chef]], I think that this -one is a good example). - -** Using ansible - -ansible was a new tool for me. A few friends mentionned it to me last -October when I was at the [[http://osdc.fr][OSDC.fr]] and it was also -suggested to me by a colleague at work. - -This tool is definitely less known that Chef, so I'll give a quick -introduction. In ansible world, you write "playbooks", which are the -orchestration language for the tool. That sounds very similar with Chef, -but the main difference is they are not actual code, but a scenario with -actions. - -On the web site of the project, there's a quote saying: - -#+BEGIN_QUOTE - You can get started in minutes. -#+END_QUOTE - -and for once, that's true. I only had to read the first page of the -documentation, and I was able to write a very simple playbook that I was -able to evolve very quickly to do something actually useful. - -Another difference with Chef is that they don't incite you to share your -playbooks, but instead to share your modules. Modules could be compared -to Chef's LWRP. They are Python code to do something specific (like the -[[http://ansible.cc/docs/modules.html#pip][=pip=]] module, to install -Python package, or the -[[http://ansible.cc/docs/modules.html#template][=template=]]'s one). - -** Chef vs Ansible - -For now, I've decided to stick to this: use Chef for my supporting -application (nginx, MySQL, etc) and ansible for my own applications. - -So far, I prefer ansible to Chef. There's definitely less available -material about ansible on the net, but the quality is better, and the -main documentation is very (I insist on the /very/) well organized. I've -never spend more than 10 minutes looking for something and to implement -it. I can't say the same with Chef: the wiki is confusing; there's way -too many cookbooks available; their quality is very disparate. |
