Opscode Plugin Chef Ohai - Como obter um plugin customizado para rodar automaticamente?

4

Os documentos do Ohai estão incompletos. Aqui está o que eu consegui fazer até agora:

  • Eu criei um plug-in personalizado que adiciona uma parte dos dados do nó chamada "my_custom_data"
  • funciona quando eu carrego manualmente no IRB
  • Eu usei o livro de receitas Ohai para colocá-lo nos servidores que precisam dele

No entanto, Ohai não carrega, nem durante as corridas do Chef, nem quando eu corro o Ohai manualmente.

Os documentos, aqui, são de pouca utilidade para responder a essa pergunta. link

    
por JDS 26.06.2013 / 18:36

2 respostas

3

Sua pergunta implica que você já está usando o livro de receitas Ohai para distribuir o plugin, e isso está funcionando - ou seja, seu plugin personalizado acaba sendo instalado em /etc/chef/ohai_plugins (na configuração padrão). Se for esse o caso, é quase certo que está tentando carregar o plug-in - e o plug-in está falhando.

Ohai não se preocupa com plugins que falham - simplesmente passa para o próximo.

Ao executar manualmente, certifique-se de dizer ao ohai para procurar no diretório de plug-ins adicional. Veja como isso falha (para um plugin personalizado chamado 'aws'):

[zts@ip-172-31-39-167 ~]$ ohai aws
[2013-07-25T22:14:53+00:00] INFO: [inet6] no default interface, picking the first ipaddress
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ohai-6.16.0/lib/ohai/system.rb:247:in 'attributes_print': I cannot find an attribute named aws! (ArgumentError)
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ohai-6.16.0/lib/ohai/application.rb:101:in 'block in run_application'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ohai-6.16.0/lib/ohai/application.rb:100:in 'each'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ohai-6.16.0/lib/ohai/application.rb:100:in 'run_application'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ohai-6.16.0/lib/ohai/application.rb:75:in 'run'
    from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ohai-6.16.0/bin/ohai:51:in '<top (required)>'
    from /usr/bin/ohai:23:in 'load'
    from /usr/bin/ohai:23:in '<main>'

[zts@ip-172-31-39-167 ~]$ ohai aws -d /etc/chef/ohai_plugins
[2013-07-25T22:15:05+00:00] INFO: [inet6] no default interface, picking the first ipaddress
{
  "region": "eu-west-1",
  "rds": {
<--snip-->

Finalmente, se você não estiver visualizando nenhuma saída (mas sem erros), ative o registro de depuração e pesquise a saída para encontrar a parte associada ao seu plug-in:

[zts@ip-172-31-39-167 ~]$ ohai aws -d /etc/chef/ohai_plugins -l debug
[2013-07-25T22:17:24+00:00] DEBUG: Loading plugin os
[2013-07-25T22:17:24+00:00] DEBUG: Loading plugin kernel
[2013-07-25T22:17:24+00:00] DEBUG: Loading plugin ruby
[2013-07-25T22:17:24+00:00] DEBUG: Loading plugin languages
<-- huge amounts of logs removed -->
[2013-07-25T22:18:21+00:00] DEBUG: Loading plugin aws
<-- way more logs here -->
    
por 26.07.2013 / 00:21
1

Você precisa ter a seguinte linha em /etc/chef/client.rb. Se você estiver usando o bootstrap de faca, precisará especificar um modelo.

Ohai::Config[:plugin_path] << "/etc/chef/ohai_plugins"
    
por 18.09.2013 / 15:23

Tags