That looks like the way to do it.
One thing that is easy to overlook is handling the situation when the search returns no results. This will probably happen during the initial setup, before your Web services have completed their respective chef runs. That is a particularly insidious problem if you have recursive dependencies - say, your web services also need to keep track of the clients that use the Web service.
If your recipes simply fail when there are no results, you may get stuck in a deadlock where neither client nor server ever complete their runs.
Our values: Privacy, Liberty, Justice
Welp just found the answer to my first question. Having my recipe search for nodes within my environment that have my web service recipe in their run list looks like it would work.
On Mon, Jan 26, 2015 at 2:03 PM, Dwayne Forehand <email@example.com mailto:firstname.lastname@example.org > wrote:
I’ve got internal and external webserver roles. In my internal run list I have a recipe for a web service which sets a node attribute with that services end point. I’ve got other web app recipes later in the internal run list that use that web service end point attribute in configuring the web apps. I also have a recipe in the external web server role that wants to discover the end point for that web service, but I’m not sure how to access the other nodes attributes or even if I should.
Is there a way that I can set the web service end point attribute at an environment level and have my recipes access it from there? Is there a better way to handle this need?