Mitch A
Mitch A

Reputation: 2098

How to integrate a deployment automation tool into puppet?

We are a mixed linux/windows shop that successfully adopted Puppet for Config Mgmt a while ago. We'd like to drop ansible in as our deployment orchestration tool (research suggests that puppet doesn't do this very well) but have questions about how to integrate the two products.

Today, puppet is the source of truth with respect to environment info (which nodes belong to which groups etc). I want to avoid duplicating this information in ansible. Are there any best practices with regards to sharing environment information between the two products?

Upvotes: 3

Views: 119

Answers (2)

trojan
trojan

Reputation: 1

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

https://puppetlabs.com/mcollective

Upvotes: 0

Chris Pitman
Chris Pitman

Reputation: 13104

One way to reduce the amount of duplicated state between the systems is to use Ansible's "Dynamic Inventory" support. Instead of defining your hosts/groups in a text file, you use a script that pulls the same data from somewhere else. This could be PuppetDB, Foreman, etc and is going to depend on your environment.

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

Lastly, it is possible to roll out new releases with puppet, but it is easier with a "microservice" like release process. Ensuring apps/services/databases remain backwards compatible across versions can make pushing out releases trivial with puppet and your favorite package manager.

Upvotes: 1

Related Questions