class_docstr: Configure TF Encrypted to use network hosts for the different players.
  
  :param (str,str),str->str hostmap: A mapping of hostnames to
      their IP / domain.
  :param str job_name: The name of the job.
docstr: Construct a :class:`tf.distribute.Server` object for the corresponding
  :class:`Player`.
  
  :param str name: Name of player.
code: def start_server(self, name, start=True):
      """Construct a :class:`tf.distribute.Server` object for the corresponding
      :class:`Player`.
  
      :param str name: Name of player.
      """
      player = self.get_player(name)
      assert (
          player is not None
      ), "'{}' not found in configuration".format(name)
      cluster = tf.train.ClusterSpec({self._job_name: self.hosts})
      logger.debug("Creating server for '%s' using %s", name, cluster)
      server = tf.distribute.Server(
          cluster,
          job_name=self._job_name,
          task_index=player.index,
          start=start,
      )
      logger.info(
          "Created server for '%s' as device '%s'; host address is '%s'",
          name,
          player.device_name,
          server.target,
      )
      return server
  
imports: import json
  import logging
  import math
  from abc import ABC
  from abc import abstractmethod
  from collections import OrderedDict
  from pathlib import Path
  import tensorflow
  from .player import Player
label_desc: Use image node_id 9 for calling the RemoteConfig obj's underlying member method code with example usage: obj.start_server(name, start) and returns: server