On Thursday, September 12, 2013 at 9:41 PM, Manoj wrote:
Thanks everyone ,
I am still confused on how to achieve it what I have us a very normal everyday scenario in almost every company I think
1. Do a build using Jenkins and copy it to chef server
2. Run chef client on a set of nodes , all these nodes have multiple recipes in their runlist
3.only run list that should be run is whose file is changed and the new file should be copied on that agent
Please help me do a write up for this
What i understand from remote_file is that it will not be able to automatically copy file from a location like chef server . I would have to copy the file on some NSF mount and make it available on all nodes which is too tedious and unnecessary
Where do you put your artifacts after jenkins builds them? Use jenkins built-in artifact storage?
If that's the case, chef-client can fetch the file directly from jenkins as long as you have the URL.
If it's a requirement that chef-server store the artifact, you're gonna have to upload the artifact as part of a cookbook and use cookbook_file. This can be a real pain if you manage the cookbook with version control (which you should do).
I have used puppet in past and puppet supports it as a secular functionality , I am sure I am missing some piece here
Please help
Chef has an override run list feature where you can run just a specific recipe (or several).