[chef] Organizing cookbooks in a logical way


Chronological Thread 
  • From: Joseph Djomeda < >
  • To: " " < >
  • Subject: [chef] Organizing cookbooks in a logical way
  • Date: Mon, 03 Aug 2015 22:58:18 +0000

Hello Gurus,

I have an issue which seems to be a blocker for me in my progress with Chef to effectively move to production. The issue is that I started Ansible before Chef therefore my only reference tends to be based on Ansible.

It looks more natural to me writing a playbook with different host names while having those host names in some inventory file. So looks easy to provision lots of nodes to me. That concept of role in chef is not so clear to me .

For example I can write some roles in Ansible with options which are boolean variable to switch between using apache as simple html hosting, for php virtual host , for reverse proxy using http or ajp etc.So everything is pretty much is maintained at the playbook level which gets checked in VCS. I am not too sure how to achieve that in chef. I am not trying to say one is better than the either, I am just saying I would like to know how to organize my own cookbooks .


As devops almost every week, depending on requirement, I use either nginx or apache to deploy:

wordpress site
joomla site
java reverse proxy using (ajp for apache or http for nginx)

These are all on ubuntu linux which needs some hardening for production (By the way I need a book to achieve this, any link would be greatly appreaciated ;) ). So for web project A I will need building block like

- recipe[linux_security]
- recipe[nginx | apache2]
- recipe[wordpress | joomla]

So the real question is if this is a project A, so I should create a cookbook A which will use the the listed cookbooks above. Now project B is for client B and will need the same stack should this differentiation be at attributes level or cookbook level?

What is the recommended way to use attributes with chef-server? especially while bootstraping.

How to use the role in practice? For example where to map that nodes a.servers.com b.servers.com, c.servers.com are all linux, web server/nginx ?


Thanks for reading this.

Best Regards,



--
Joseph Kodjo-Kuma Djomeda
check out my pains at : www.mycodingpains.com
We become what we think about ourselves........



Archive powered by MHonArc 2.6.16.

§