code: public void executeNodeStep(final PluginStepContext context,
                                  final Map<String, Object> configuration,
                                  final INodeEntry entry) throws NodeStepException {
  
          System.out.println("Example node step executing on node: " + entry.getNodename());
          System.out.println("Example step extra config: " + configuration);
          System.out.println("Example step num: " + context.getStepNumber());
          System.out.println("Example step context: " + context.getStepContext());
          if ("true".equals(configuration.get("pancake"))) {
              //throw exception indicating the cause of the error
              throw new NodeStepException("pancake was true", Reason.PancakeReason, entry.getNodename());
          }
      }
docs: The {@link #performNodeStep(com.dtolabs.rundeck.plugins.step.PluginStepContext,
  com.dtolabs.rundeck.core.common.INodeEntry)} method is invoked when your plugin should perform its logic for the
  appropriate node.  The {@link PluginStepContext} provides access to the configuration of the plugin, and details
  about the step number and context.
  <p/>
  The {@link INodeEntry} parameter is the node that should be executed on.  Your plugin should make use of the
  node's attributes (such has "hostname" or any others required by your plugin) to perform the appropriate action.