def build_node(node_name, env_hash, node_hash)
      node_config = {
        'server'     => node_hash.slice('host', 'port', 'user', 'password', 'platform', 'vagrant'),
        'attributes' => (node_hash['attributes'] || {}).deep_merge(env_hash['attributes'] || {}),
        'run_list'   => node_hash['run_list']   || env_hash['run_list'],
        'before'     => env_hash['before']      || @config['before'],
        'after'      => env_hash['after']       || @config['after']
      }
      node_config['server'].delete 'attributes'
      Gusteau::Node.new(node_name, node_config)
    end
def build_node(node_name, env_hash, node_hash)
      node_config = {
        'server'     => node_hash.slice('host', 'port', 'user', 'password', 'platform', 'vagrant'),
        'attributes' => (node_hash['attributes'] || {}).deep_merge(env_hash['attributes'] || {}),
        'run_list'   => node_hash['run_list']   || env_hash['run_list'],
        'before'     => env_hash['before']      || @config['before'],
        'after'      => env_hash['after']       || @config['after']
      }
      node_config['server'].delete 'attributes'
      Gusteau::Node.new(node_name, node_config)
    end
Node attributes get deep-merged with the environment ones
 Node run_list overrides the environment one
 Environment before hooks override global ones