Continuous delivery with puppet and faux

I have Jenkins, Artifactory and 3 environments (development, testing and production).

When a developer commits something from a development environment, he is compiled and tested in a test environment. And its assemblies and artifacts are stored in Artifactory.

Now I want to take the next step and use the puppet to manage the environments and deploy artifacts from Artifactory to the production environment.

But I need some tips to get started:

  • Where is the best place to install a puppet? On the same server as artifactory, since they work togehter? Puppet also customizes the environment. Therefore, I’m not sure if there is something to consider.

  • Are there any configurations that I need to keep in mind before or during the installation of the puppet? Especially in the context of art and Jenkins.

Thanks for any hint / help.

+4
source share
2 answers

Disclaimer: this is exactly how I do it :)

I see no benefit in putting Artifactory on the same server as the Puppets, and this seems like a bad idea.

In Artifactory, I have a virutal repository that includes only our product artifacts that concern me. I have a separate shared web server that hosts different dollhouse sites, and sometimes people in our company need to download. This server is also a direct proxy virtual repo server in artifactory.

The local web server is synchronized every night with an external aws server. Inside, the nodes that need to load the bits get them from our local server. Externally, they are downloaded from a cloud server (indeed, an autoscaling cluster).

This makes for a pretty simple way to write puppet manifests / custom types that can load, md5 and set artifacts on nodes. Even slicker for Linux will consist in creating packages, but at the moment I do not.

I also use Foreman as an ENC Kuppet. Software versions are configured as Foreman parameters at the global, group and, if necessary, node level. To deploy a new version of the war with the application, someone simply logs into Foreman, sets this parameter and waits for Puppet to do its work (or log in to the node system and start Puppet launch, if necessary).

Hope you get some ideas.

+2
source

To begin with, your first decision should be whether you want to run the puppet in master agent mode (client / server) or in "no mastery" mode. Getting started with puppetlabs.com documentation is solid, and it deserves the following lessons.

Regardless of your decision, you will need to install a puppet on each server that runs the doll - the same binary runs, master, agent, application, etc.

Puppet 101 mockup example, assuming redhat-ish OS:

# Install puppet sudo yum install puppet -y # Create basic manifest echo "notify {'hello world':}" > hello.pp # Run masterless scenario: sudo puppet apply hello.pp 

Expected Result:

 notice: hello world notice: /Stage[main]//Notify[hello world]/message: defined 'message' as 'hello world' notice: Finished catalog run in 0.03 seconds 
+2
source

All Articles