1. A computer-implemented method comprising: receiving, by a first machine from a second machine over a communication network, a virtualization tool, a provisioning tool, and a configuration tool stored in a distributable self-contained repository of the second machine; storing, by the first machine, the received virtualization tool, provisioning tool, and configuration tool to a replicated distributable self-contained repository of the first machine; building, by the first machine, a replica of the second machine at the first machine using the virtualization tool, the provisioning tool, and the configuration tool stored in the replicated distributable self-contained repository of the first machine by: executing a bootstrapping process to obtain parameters for the first machine; generating one or more virtual machines on the first machine using the virtualization tool according to the obtained parameters; provisioning the one or more virtual machines using the provisioning tool according to the obtained parameters; and configuring the one or more provisioned virtual machines using the configuration tool according to the obtained parameters; and sending changes made on the first machine to the second machine over the communication network, wherein the second machine synchronizes the received changes at the second machine by utilizing a provisioning server to at least one of repair or rebuild contents at the second machine.