What's the definition and difference between provision and bootstrap?

What would "provision a machine" mean, compared to "bootstrapping a machine"?

I see that provision is mostly used when talking about Puppet and Chef, and bootstrapping seams to be mentioned more closely to a machines booting process (really early after powering the machine on). However, some people seem to use these interchangeably.

Related:

  • https://serverfault.com/tags/provisioning/info
  • https://serverfault.com/tags/bootstrap/info

Solution 1:

Bootstrap refers to as a thin kludge or hack deriving from the phrase: "pull yourself up by your bootstraps."

Provisioning is more generic, and doesn't have the same context around difficulty or cleverness of the solution.

Example:

I bootstrapped the new VM with the puppet binary so that I could privision it from the puppet-master.

Solution 2:

I am sure someone can craft a better answer however to me bootstrapping is related to the boot process where the process that starts up on the cpu initially must start the rest of the OS.

https://stackoverflow.com/questions/1254542/what-is-bootstrapping

Provisioning implies assignment and potential utilization of resources. For instance, You provision VM's from the hardware resources available on the system or group of systems. You even hear the term over-provision in this context meaning you have allocated more potential resources than are currently available knowing that many of the provisions are under-utilized.

You can also provision files, settings, etc. in existing systems with a configuration management system such as puppet or chef.

I hope that helps. If something is unclear I would be happy to try for a better explanation of anything specific.