docs: def sync_node(node):
      """Builds, synchronizes and configures a node.
      It also injects the ipaddress to the node's config file if not already
      existent.
  
      """
      if node.get('dummy') or 'dummy' in node.get('tags', []):
          lib.print_header("Skipping dummy: {0}".format(env.host))
          return False
      current_node = lib.get_node(node['name'])
      # Always configure Chef Solo
      solo.configure(current_node)
      ipaddress = _get_ipaddress(node)
      # Everything was configured alright, so save the node configuration
      # This is done without credentials, so that we keep the node name used
      # by the user and not the hostname or IP translated by .ssh/config
      filepath = save_config(node, ipaddress)
      try:
          # Synchronize the kitchen directory
          _synchronize_node(filepath, node)
          # Execute Chef Solo
          _configure_node()
      finally:
          _node_cleanup()
      return True