docs: def client(whyrun=False,
             localmode=False,
             logfile=None,
             **kwargs):
      '''
      Execute a chef client run and return a dict with the stderr, stdout,
      return code, and pid.
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' chef.client server=https://localhost
  
      server
          The chef server URL
  
      client_key
          Set the client key file location
  
      config
          The configuration file to use
  
      config-file-jail
          Directory under which config files are allowed to be loaded
          (no client.rb or knife.rb outside this path will be loaded).
  
      environment
          Set the Chef Environment on the node
  
      group
          Group to set privilege to
  
      json-attributes
          Load attributes from a JSON file or URL
  
      localmode
          Point chef-client at local repository if True
  
      log_level
          Set the log level (debug, info, warn, error, fatal)
  
      logfile
          Set the log file location
  
      node-name
          The node name for this client
  
      override-runlist
          Replace current run list with specified items for a single run
  
      pid
          Set the PID file location, defaults to /tmp/chef-client.pid
  
      run-lock-timeout
          Set maximum duration to wait for another client run to finish,
          default is indefinitely.
  
      runlist
          Permanently replace current run list with specified items
  
      user
          User to set privilege to
  
      validation_key
          Set the validation key file location, used for registering new clients
  
      whyrun
          Enable whyrun mode when set to True
  
      '''
      if logfile is None:
          logfile = _default_logfile('chef-client')
      args = ['chef-client',
              '--no-color',
              '--once',
              '--logfile "{0}"'.format(logfile),
              '--format doc']
  
      if whyrun:
          args.append('--why-run')
  
      if localmode:
          args.append('--local-mode')
  
      return _exec_cmd(*args, **kwargs)