Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undefined method or attribute cpan_client' on node'(2) #32

Closed
spigell opened this issue Oct 3, 2017 · 4 comments
Closed

Undefined method or attribute cpan_client' on node'(2) #32

spigell opened this issue Oct 3, 2017 · 4 comments
Assignees

Comments

@spigell
Copy link

spigell commented Oct 3, 2017

Здравствуйте. Столнулся с такой же ситацией, как и в этом тикете - #23
metadata.rb

name 'sparrow'
version '0.1.0'
maintainer 'Spigell 7th'
maintainer_email 'spigell@tomatonetwork.ru'

depends 'cpan'

default.rb

include_recipe 'cpan::default'
include_recipe 'cpan::bootstrap'

cpan_client 'Sparrow' do
  action 'install'
  install_type 'cpan_module'
  user 'root'
  group 'root'
end

Не очень понимаю как заставить его работать. Трейс - https://gist.github.com/Spigell/f76c3eeca2523dbb51399de8f933f54f

Даже когда я пытаюсь прогнать cpan::bootstrap отдельно тоже такая же ошибка.
Версия:

[vagrant@testo ~]$ chef-client -v
Chef: 13.2.20

Использую chef-solo.

@spigell
Copy link
Author

spigell commented Oct 3, 2017

Я поменял в рецепте захват атрибутов на что-то типа такого

node[:cpan_client][:bootstrap][:keep_autoupdate]

и у меня заработал бутстрап.

Но дальше дело не пошло.

  * cpan_client[Sparrow] action install[2017-10-03T04:03:39+03:00] INFO: Processing cpan_client[Sparrow] action install (sparrow::default line 4)

    
    ================================================================================
    Error executing action `install` on resource 'cpan_client[Sparrow]'
    ================================================================================
    
    NameError
    ---------
    uninitialized constant Chef::Resource::CpanClient
    
    Cookbook Trace:
    ---------------
    /home/vagrant/.chef/local-mode-cache/cache/cookbooks/cpan/providers/client.rb:4:in `load_current_resource'
    
    Resource Declaration:
    ---------------------
    # In /home/vagrant/.chef/local-mode-cache/cache/cookbooks/sparrow/recipes/default.rb
    
      4: cpan_client 'Sparrow' do
      5:   action 'install'
      6:   install_type 'cpan_module'
      7:   user 'root'
      8:   group 'root'
      9: end
     10: 
    
    Compiled Resource:
    ------------------
    # Declared in /home/vagrant/.chef/local-mode-cache/cache/cookbooks/sparrow/recipes/default.rb:4:in `from_file'
    
    cpan_client("Sparrow") do
      action [:install]
      default_guard_interpreter :default
      declared_type :cpan_client
      cookbook_name "sparrow"
      recipe_name "default"
      install_type "cpan_module"
      user "root"
      group "root"
    end
    
    System Info:
    ------------
    chef_version=13.2.20
    platform=centos
    platform_version=7.3.1611
    ruby=ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
    program_name=chef-client worker: ppid=17268;start=04:03:29;
    executable=/opt/chef/bin/chef-client
    
[2017-10-03T04:03:39+03:00] INFO: Running queued delayed notifications before re-raising exception

Running handlers:
[2017-10-03T04:03:39+03:00] ERROR: Running exception handlers
Running handlers complete
[2017-10-03T04:03:39+03:00] ERROR: Exception handlers complete
Chef Client failed. 8 resources updated in 09 seconds
[2017-10-03T04:03:39+03:00] FATAL: Stacktrace dumped to /home/vagrant/.chef/local-mode-cache/cache/chef-stacktrace.out
[2017-10-03T04:03:39+03:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2017-10-03T04:03:39+03:00] ERROR: cpan_client[Sparrow] (sparrow::default line 4) had an error: NameError: uninitialized constant Chef::Resource::CpanClient
[2017-10-03T04:03:39+03:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

@melezhik melezhik self-assigned this Oct 4, 2017
@melezhik
Copy link
Owner

melezhik commented Oct 4, 2017

Приветствую! Скорее всего, что chef клиенте 13-й версии это работать не будет, код был написан давно, работает только под старые версии (11 .. 12.4 ), начиная с версии 12.5 шеф заменил LWRP на custom resources:

Вот цитата из док-ии об этом:

https://docs.chef.io/custom_resources.html

Custom resources were introduced in Chef version 12.5 and are now the preferred method of writing your own resources in Chef. If you are using an older version of the chef-client, please see our legacy documentation, 

Я если честно сейчас вообще не использую данный кукбук и нет в планах его поддержки.

Однако, если у вас задача ставить sparrow через шеф, могу предложить два варианта:

  1. кукбук sparrow - https://supermarket.chef.io/cookbooks/sparrow - он должен работать под любой версией шеф клиента, и использует для установки Perl и cpanm кукбук perl, который кстати майнтейнится опскодом. Опционально этот кукбук может так же ставить sparrow плгины из указанного списка ( по дефолту это список пустой )

  2. использовать https://sparrowhub.org/bootstrap.sh , что называется дешево и сердито:

execute "curl -s -k -f https://sparrowhub.org/bootstrap.sh | bash"

bootstrap.sh более или менее совпадает с бутсрапом через sparrowdo ( минимальные различия )

Скажите, помогло ли вам.

melezhik added a commit that referenced this issue Oct 4, 2017
@spigell
Copy link
Author

spigell commented Oct 4, 2017

Понятно. Спасибо за варианты, думаю один из них подойдет.
Тикет можно закрыть.

Вы не планируете делать нативные пакеты для sparrow?

@melezhik
Copy link
Owner

melezhik commented Oct 5, 2017

Здравствуйте! Идея с нативными пакетами - хорошая, но мне пока не хватает навыков и времени ее воплотить. Если вы сможете чем-то помочь - буду признателен.

@melezhik melezhik closed this as completed Oct 5, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants