[chef] Re: Re: Running chef-client programatically


Chronological Thread 
  • From: Daniel DeLeo < >
  • To:
  • Subject: [chef] Re: Re: Running chef-client programatically
  • Date: Mon, 20 Oct 2014 10:09:31 -0700

To get information from chef (client or solo) about what it’s doing, you can 
use the event dispatch system (via a plugin you’ll need to write). The 
dispatcher code showing all the events is here: 
https://github.com/opscode/chef/blob/9b3e925188a41bbea954429ac81ffdf65e936eda/lib/chef/event_dispatch/base.rb
 and one example of using it is the ResourceReporter class that is used by 
Chef’s analytics product, here: 
https://github.com/opscode/chef/blob/master/lib/chef/resource_reporter.rb You ;
can see an external example of this here: 
https://github.com/theforeman/chef-handler-foreman  ;

Jon Cowie covers this a little bit in his ChefConf 2104 talk, which you can 
see here: 
https://www.youtube.com/watch?v=vVVPWMHJdvg&list=PL11cZfNdwNyMmx0msapJfuGsLV43C7XsA&index=65
 It’s also covered in his book: 
http://shop.oreilly.com/product/0636920032984.do  ;

If you create a custom reporter that uses IPC, then you don’t need to worry 
about controlling the chef run from code, which would make some parts of your 
task simpler.

--  
Daniel DeLeo


On Sunday, October 19, 2014 at 9:40 AM, Ranjib Dey wrote:

> yeah, you can do that, take a look at the client code[1]. Do you want a 
> client-sever like chef run or solo runs? There are three basic things you 
> have to do
> a) Configure chef, either via Chef::Config.from_file, or directly set 
> Chef::Config[:key], where key is node_name, client_key and chef_server_url
> b) build the node & run_context , this involves generating the ohai data, 
> pass it to a node, use that node to build a run_context
> c) assign run_list and do a converge
>  
> you can see similar codes here[2], [3]
>  
> note, this means you have to run your chef-client as root (not a strict 
> requirement, but if you are manipulating users, packages, services etc, 
> you'll need this).
>  
> regards
> ranjib
>  
> [1]https://github.com/opscode/chef/blob/master/lib/chef/client.rb#L348
> [2]https://github.com/ranjib/chef-lxc/blob/master/lib/chef/application/lxc.rb#L86
> [3]https://github.com/ranjib/chef-stage/blob/master/libraries/staged_chef_client.rb#L34
>  
>  
> 2014-10-19 3:56 GMT-07:00 Bráulio Bhavamitra 
> <
>  
> (mailto: )>:
> > Hello all,
> >  
> > I building an app to control shared hosting deploys using chef and for it 
> > to work I would like to run chef-client inside this ruby app to be able 
> > to know and log exactly what chef-client is doing and what feedback it is 
> > giving. Is there a way to do so? Are there docs?
> >  
> > Cheers
> > Braulio
> >  
> > --  
> > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua 
> > ideologia. Morra por sua ideologia" P.R. Sarkar
> >  
> > EITA - Educação, Informação e Tecnologias para Autogestão
> > http://cirandas.net/brauliobo
> > http://eita.org.br ;(http://eita.org.br/)
> >  
> > "Paramapurusha é meu pai e Parama Prakriti é minha mãe. O universo é meu 
> > lar e todos nós somos cidadãos deste cosmo. Este universo é a imaginação 
> > da Mente Macrocósmica, e todas as entidades estão sendo criadas, 
> > preservadas e destruídas nas fases de extroversão e introversão do fluxo 
> > imaginativo cósmico. No âmbito pessoal, quando uma pessoa imagina algo em 
> > sua mente, naquele momento, essa pessoa é a única proprietária daquilo 
> > que ela imagina, e ninguém mais. Quando um ser humano criado mentalmente 
> > caminha por um milharal também imaginado, a pessoa imaginada não é a 
> > propriedade desse milharal, pois ele pertence ao indivíduo que o está 
> > imaginando. Este universo foi criado na imaginação de Brahma, a Entidade 
> > Suprema, por isso a propriedade deste universo é de Brahma, e não dos 
> > microcosmos que também foram criados pela imaginação de Brahma. Nenhuma 
> > propriedade deste mundo, mutável ou imutável, pertence a um indivíduo em 
> > particular; tudo é o patrimônio comum de todos."
> > Restante do texto em 
> > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia
>  






Archive powered by MHonArc 2.6.16.

§