# File lib/simp/cli/commands/bootstrap.rb, line 174
  def self.configure_bootstrap_puppetserver
    info('Configuring the puppetserver to listen on port 8150', 'cyan')
    begin
      # Back everything up!
      puppetserver_dir = '/etc/puppetlabs/puppetserver/conf.d'
      if File.directory?(puppetserver_dir)
        conf_files = ["#{puppetserver_dir}/webserver.conf",
                      "#{puppetserver_dir}/web-routes.conf",
                      '/etc/sysconfig/puppetserver']
        conf_files.each do |file|
          if File.exists?(file)
            backup_dir = File.join(@bootstrap_backup, File.dirname(file))
            FileUtils.mkdir_p(backup_dir)
            FileUtils.cp(file, backup_dir)
            info("Successfully backed up #{file} to #{backup_dir}", 'green')
          end
        end
      else
        fail( "Could not find directory #{puppetserver_dir}" )
      end

      # Run in a temporary cache space.
      server_conf_tmp = "#{::Utils.puppet_info[:config]['vardir']}/pserver_tmp"
      FileUtils.mkdir_p(server_conf_tmp)
      FileUtils.chown('puppet','puppet',server_conf_tmp)
      command = "puppet resource simp_file_line puppetserver path='/etc/sysconfig/puppetserver'" +
        %Q{ match='^JAVA_ARGS' line='JAVA_ARGS="-Xms2g -Xmx2g -XX:MaxPermSize=256m} +
        %Q{ -Djava.io.tmpdir=#{server_conf_tmp}"' 2>&1 > /dev/null}
      execute(command)
      info("Successfully configured /etc/sysconfig/puppetserver to use a temporary cache", 'green')

      # Slap minimalistic conf files in place to get puppetserver off of the ground.
      File.open("#{puppetserver_dir}/webserver.conf", 'w') do |file|
        file.puts "webserver: {\naccess-log-config: /etc/puppetlabs/puppetserver/request-logging.xml\nclient-auth: want\nssl-host = 0.0.0.0\nssl-port = 8150\n}\n"
      end
      info("Successfully configured #{puppetserver_dir}/webserver.conf with bootstrap settings", 'green')

      File.open("#{puppetserver_dir}/web-routes.conf", 'w') do |file|
        file.puts "web-router-service: {\n\"puppetlabs.services.ca.certificate-authority-service/certificate-authority-service\": \"/puppet-ca\"\n\"puppetlabs.services.master.master-service/master-service\": \"/puppet\"\n\"puppetlabs.services.legacy-routes.legacy-routes-service/legacy-routes-service\": \"\"\n\"puppetlabs.services.puppet-admin.puppet-admin-service/puppet-admin-service\": \"/puppet-admin-api\"\n\"puppetlabs.trapperkeeper.services.status.status-service/status-service\": \"/status\"\n}\n"
      end
      info("Successfully configured #{puppetserver_dir}/web-routes.conf with bootstrap settings", 'green')
    rescue => error
      fail( "Failed to configure the puppetserver with bootstrap settings: #{error.message}" )
    end
  end