[chef] Re: Re: Re: Re: [Chef] Communcation: MyApp-ChefClient-ChefSrver-ChefClients


Chronological Thread 
  • From: Ranjib Dey < >
  • To: " " < >
  • Subject: [chef] Re: Re: Re: Re: [Chef] Communcation: MyApp-ChefClient-ChefSrver-ChefClients
  • Date: Wed, 4 Feb 2015 20:22:35 -0800

if this combination works for you, then you should stick to it :0-). I use knife ssh extensively and i love it. But this involves chef-workstation as part of the workflow. Sometime thats not what i want. Also ssh transport is lot more chatty (loads of PSHs). SSH auth setup is an aprior step. Sometime this assumptions are valid, and knife-ssh works fine, other times you'll need alternatives

But complex workflows, as i mentioned in the earlier email, is difficult with knife ssh. spicewasel is popular for the same reason, as it ties knife commands into a single file.

I recently published the knife extension for blender-chef [1], you can give it a try just to check how its different from knife-ssh (similar can be done via ansible, mco etc as well).


On Wed, Feb 4, 2015 at 6:03 PM, kritivagop01 . < " target="_blank"> > wrote:
hi,

i have alternative solution :

chef server  will have all cookbooks and other information.

chef workstation used to maintain all cookbooks  and uploading to server

chef client to receive those cookbooks and maintained by chef server.

chef workstation,we can upload cookbooks and can use knife ssh to ask all chef client for the execute chef-client and get the update in one command.

thanks,
K.Gopalakrishnan

On Thu, Feb 5, 2015 at 1:36 AM, Leonid Medvedev < " target="_blank"> > wrote:
Hello Ranjib Dey :)

Thanks a lot. Sorry for the delay with answer.

Unfortunately we are not familiar with these frameworks: mco, pushy, ansible, blender or rundeck. But we will investigate them; you understand it is not easy to use external additional products.

But I have several additional questions:
1. Is it possible to use "Chef Push Jobs" (https://docs.chef.io/push_jobs.html). I would like to install this service on the same host with MyApp. And the question for these case - you wrote: "Your app can talk to chef server using the ruby or java or go api", please clarify or send the link with explanation.

2. Next question. Is it possible to extend Chef Client - for example it should open DB and read/write some fields in a table. Please also clarify.

3. Last question. Can we use Chef client as retransmitter of messages to Chef Server?

Thanks a lot again and again :).

Leonid.


2015-02-03 23:40 GMT+02:00 Ranjib Dey < " target="_blank"> >:
Do It :-)
Its possible
"The Chef Client has to get trigger from MySDK (it can be alarm or field from the database) and sends the trigger to Chef Server (second host)."
 - MySDK has to use mco, or pushy or ansible or blender or rundeck like tool to do this (orchestration engine).

Chef Server does not support plugging in custom modules (last time i checked there were talks about http middlewares, but nothing concrete),

I'll suggest using chef server as artifact store (cookbooks, roles , databags etc) and metadata source (chef search, nodes etc), but not as a messaging system (i.e. chef server triggering client runs), its a different service , you can consolidate them in one box but still they are different.

I have used MCollective[1] to do the same, now im using Serf (fleet wide triggers, and all other automated triggers) and SSH agent (for on demand runs) via blender[2]. You can do same with pushy, but i dont know the full feature set there.

In this scenario, you'll  use chef event handlers to drop serf events or mco calls to indicate state change (like run failed or node converged or a particular file has changed), these event can have payloads. Your app should subscribe these events (like serf handler, for mco u'll use exchanges, topics etc AMQP primitives). Your app can talk to chef server using the ruby or java or go api (whatever language you choose), chef' client's REST abstraction is all you need to talk to chef server.

It will easier to discuss an actual use case (e.g vm provisioning via web service), then we can break down the use case into tasks, and then provide exact examples and compare them side by side :-)

cheers
ranjib



On Tue, Feb 3, 2015 at 9:07 AM, Leonid Medvedev < " target="_blank"> > wrote:
Dear all.

I have one interest question. Please answer is it possible or not? Please advise what is the best choice from your point of view.

The description in details (the picture is in attachment):

1. Hardware configuration:
  - The first host has: MySDK and Chef Client;
  - Second host has Chef Server;
  - other Chef Clients installed on a lot of hosts (for example 100-1000 times).
2. MySDK installed on the same host with Chef Client.
3. The Chef Client has to get trigger from MySDK (it can be alarm or field from the database) and sends the trigger to Chef Server (second host).
4. The Chef Server sends a request to other Chef Clients which have to perform cookbooks according received trigger.
5. Chef Clients perform cookbooks and notify Chef Server about results.
6. Chef Server sends this result to the Chef Client (first host).
7. Chef Client informs MySDK (they are on first host) about results of the trigger.

Thanks&Regards
Leonid







Archive powered by MHonArc 2.6.16.

§