It is clear from this post that Juju sits at a different layer than Chef Server. Juju sits at the orchestration or service layer, while Chef sits more at the individual server or configuration layer.
At one of Canonical's main Juju pages, it states that Juju is designed to "co-exist" with tools like Chef and Puppet, taking the process "one step further". I have scoured the internet for the past several weeks on this subject and cannot find a good explanation of how , though, a tool like Chef will co-exist with Juju.
So, to breakdown the overarching question in the title: (particular interest in Juju working together with a Chef Server)
- What is an example of a charm "written in Chef"? Is it simply a charm written in bash that then calls the
chef-solo
command? If so, can a charm call thechef-client
command to work in concert with a Chef Server? - Where is the overlap between Juju and Chef? For instance, the apache2 charm has its
config-changed
hook where it makes config changes that, in the Chef world, would take place in a recipe by applying a template file. If a Juju charm were to work along with a Chef cookbook on deploying an apache2 service (cluster) it would almost seem that an "apache2-chef" charm would have to be written so that you could separate out the tasks. In this case, the apache2 charm in the Charm Store would be less than helpful. - If you have Chef roles applied to nodes (service units) that are deployed/managed by Juju and your sysadmin decides to change the firewall rules for a particular server role and does this in the Chef role, is Juju going to ever overwrite those changes?
- More simply, can Juju be a Chef Server wrapper, like Ironfan?
I view Chef Server as the how whereas Juju can do the how, but also brings what to the table. Meaning that the real current state of services and machines can be queried and acted upon. You can't do this in Chef Server. My goal is to bring Juju's awareness and service orchestration capability into a Chef Server-managed infrastructure.
It almost seems that a whole set of charms would have to be written where all Chef-managed tasks/config info are left out.
I would love to hear weigh-ins from someone at Canonical (like Jorge Castro) and from Opscode (like A. Jacob or J. Timberman).