1. A system for provisioning software to a target machine, said system comprising: at least one repository of software distributions; and a boot server machine having a memory and a processing device, linked to the at least one repository, that hosts a provisioning server with access to plugins and templates of configuration files, wherein the provisioning server is configured to: retrieve at least one software distribution; identify one or more resources associated with the target machine; determine a function to be performed by the target machine based on the identified one or more resources associated with the target machine; generate a profile for the at least one software distribution, wherein the profile associates the at least one software distribution with the function to be performed by target machines utilizing the at least one software distribution and wherein the profile links a configuration file to the at least one software distribution; receive information indicating a system remote from the target machine that will assist in installing the at least one software distribution on the target machine; receive update information for the at least one software distribution; and install, automatically, the at least one software distribution and update information on the target machine based on the profile and with the assistance of the remote system.