How do I integrate the deployment automation tool into a puppet?

We are a mixed linux / windows store that successfully adopted Puppet for Config Mgmt some time ago. We'd like to keep it available as a tool for deploying deployments (research shows the puppet doesn't do this very well), but there are questions about how to integrate the two products.

Today, the puppet is the source of truth about environmental information (which nodes belong to which groups, etc.). I want to avoid duplicating this information in the inaccessible. Are there any best practices for sharing environmental information between the two products?


source to share

2 answers

One way to reduce the amount of duplicate states between systems is to use Ansible's "Dynamic Inventory" . Instead of defining your hosts / groups in a text file, you are using a script that fetches the same data from a different location. It could be PuppetDB , Foreman , etc. And it will depend on your environment.

Writing a new script is pretty easy too, it just needs to be any executable (bash / python / ruby ​​/ etc) that returns json in a specific format.

Finally, it is possible to deploy new releases with a puppet, but easier with a "microservice" like release process. Keeping applications / services / databases backward compatible across different versions can make release releases trivial with a puppet and your favorite package manager.



Using Puppet and Mcollective should be the way to go if you are looking for a solution from puppetlabs



All Articles