0 votes
1 view
in Devops and Agile by (24k points)

Question

Can anyone explain why it would be better to choose the puppet or chef vagrant provisioners, rather than the shell provisioner?

Background

I'm in the process of getting started with Vagrant. One of the things I'm having trouble with is deciding which provisioner to use. So far, I've had some success using the shell provisioner, but it has been more work than I expected to get it to run reliably.

At the moment, I'm not familiar with ruby, puppet or chef, but I'm happy to learn any or all of them if I have to. My early experience playing with puppet and chef is that if someone else has a recipe that does exactly what you want, it works really well, but doing something non-standard means falling back coding up solution in ruby.

I'm aware of articles comparing puppet and chef, and I'm less worried about which of them to use, rather than knowing when and why I should use them at all.

1 Answer

0 votes
by (40.9k points)

For this question, I would like to suggest you to use a puppet or chef over shell because it’s going to change over time. The installation environment itself can change in a way that your deployment performs. Its major strength is its deterministic nature, the manifest you write must be able to be programmatically transformed by Puppet into a model of the server you are building. The puppet forces you to do your thinking now, but then deploy to scale with ease, rather than thinking later and re-engineering as you go.

For more understanding of puppet go through the course that surely beneficial to you

https://intellipaat.com/devops-certification-training/ 

There are other reasons to use other provisioners or tools, but you are better with Puppet or Chef than trying to ensure that your shell scripts are doing exactly they are supposed to do, for as long as you need to spawn new environments.

...