Giter Site home page Giter Site logo

Comments (9)

karmi avatar karmi commented on May 18, 2024

@jsirex That's bad... I know Chef 11 changed how attributes are handled and evaluated, what Chef version this is?

from elasticsearch.

jsirex avatar jsirex commented on May 18, 2024

I'm using Chef 10.x. At chef wiki.
First, chef applies default attributes. Then overrides default attributes by role, env, etc. If I specify only version in my role-file, for example, download_url stay unchanged, because it is already evaulated by old node.elasticsearch['version'] value. I have to explicitly override atleast version and download_url to make it work.
Also I have to say that I'm very new in Chef and, probably, do something wrong with it.

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

There's something weird in your case, since attributes set in role have higher precedence then node attributes. I know the same code as in the cookbook works with roles -- I have to add a test role to the cookbook and evaluate that. Make sure you're overriding the attribute in the role file properly -- please post the relevant snippet.

from elasticsearch.

jsirex avatar jsirex commented on May 18, 2024

In role file I put:

override_attributes "elasticsearch" => {
    :version => '0.19.8'
}

On Chefs' side (isn't it? I'm not sure):

  1. Chef Evaluate node with default attributes (:version => '0.20.1', :download_url => "http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.1.tar.gz")
  2. Chef processes role and override only version attribute (:version => '0.19.8', :download_url => "http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.20.1.tar.gz")
  3. Recipe uses :download_url for downloading and "elasticsearch-#{node.elasticsearch[:version]}" for target folder

About attributes I've read here: http://wiki.opscode.com/display/chef/Attributes

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

Have a look at what file is Chef trying to download -- it's in the output. Raise the level to debug to see more info.

Actually, the Chef 11 changelog states that the behaviour should work as you expect here, ie. correctly compose the node.elasticsearch.download_url attribute.

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

@jsirex Any new info here? I'm able to upgrade/downgrade the version just fine, the only problem is that the service isn't restarted.

My steps:

$EDITOR Vagrantfile # Change version to 0.19.0

time CHEF=latest bundle exec vagrant provision precise64
...
DEBUG: Streaming download from http://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.19.0.tar.gz to tempfile /tmp/chef...
INFO: Processing directory[/usr/local/elasticsearch-0.19.0] action create (dynamically defined)
...

time CHEF=latest bundle exec vagrant ssh precise64 -c 'ls -la /usr/local/elasticsearch'
lrwxrwxrwx 1 root root 31 Feb 26 12:57 /usr/local/elasticsearch -> /usr/local/elasticsearch-0.19.0

Please try this out with latest versions of either Chef 10.x or 11.x and post relevant parts of the Chef run output (increase level to DEBUG).

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

As a side note, the cookbook now installs the pry gem into Chef, so you can put this in your recipes/default.rb file:

require 'pry'
binding.pry

When you run Chef with:

sudo chef-solo -j /etc/vagrant-chef/dna.json -c /etc/vagrant-chef/solo.rb

you'll get an interactive console where you can check and manipulate node attributes etc.

from elasticsearch.

jsirex avatar jsirex commented on May 18, 2024

@karmi, thanks.

Looks like I have to upgrade Chef to 11.x.

from elasticsearch.

karmi avatar karmi commented on May 18, 2024

@jsirex It works on 10.24.0 just fine

from elasticsearch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.