Ask Your Question
3

How to Tier a Puppet Setup

asked 2013-07-02 10:59:54 -0500

igalic gravatar image

I'm trying to work out a method for building our infrastructure in a way that lends itself to easily scale it out as well as having a complete overview, an easily accessible documentation.

Right now my idea looks like follows:

  • at the lowest level, we have the classic puppet module. This takes care of actually implementing a task: installing packages, modifying configurations (example: apache, ntp).

  • The next level is a wrapper. For instance a "mydb", or "lb" - which abstracts away differences between mysql and postgres, (or haproxy and trafficserver respectively). It also collects exported resources (handing them down the ...

(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
5

answered 2013-07-02 12:34:35 -0500

Ancillas gravatar image

updated 2013-07-03 10:58:52 -0500

Here's how I break it down. I don't use an ENC; I do all of my node classification within site.pp.

site.pp

Contains node definitions. In my design, a node gets exactly 1 role class assigned. We have a naming standard for our servers, so my node definitions use regex statements to classify the nodes.

I've never used an ENC, but if I were going to, I would assign a role to a node in the ENC, and then structure my hiera data so that configs would drive off of one of the three pieces of ... (more)

edit flag offensive delete link more

Comments

That's a great answer, thanks! Follow-up questions, if you don't mind: 1) Do you use r10k to manage your module trees? 2) Do you completely avoid inter-module dependencies ...(more)

daff gravatar imagedaff ( 2013-07-09 07:55:35 -0500 )edit

I do use r10k to manage my environments. My modules are each in their own git repo, and then I use the Puppetfile approach with r10k to define environments. I ...(more)

Ancillas gravatar imageAncillas ( 2013-07-09 11:19:28 -0500 )edit

I do my very best to avoid inter-module dependencies, expect when I'm using a defined type like with the concat module. As with all things, there are appropriate places ...(more)

Ancillas gravatar imageAncillas ( 2013-07-09 11:20:24 -0500 )edit

In the case of, say, a puppet master, I'd have a puppet master module that can manage a puppet master, and then I'd create a puppetmaster role that ...(more)

Ancillas gravatar imageAncillas ( 2013-07-09 11:23:53 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2013-07-02 10:59:54 -0500

Seen: 568 times

Last updated: Jul 03 '13