Presentation is loading. Please wait.

Presentation is loading. Please wait.

How to open source your Puppet configuration

Similar presentations


Presentation on theme: "How to open source your Puppet configuration"— Presentation transcript:

1 How to open source your Puppet configuration
23 September 2014 Elizabeth K. Joseph Automation & Tools HP @pleia2

2 Elizabeth K. Joseph Linux hobbyist since 2002
Professional systems administrator since 2006 Contributor to Ubuntu, Debian and OpenStack projects But perhaps most importantly... Elizabeth K. Joseph @pleia2

3 OpenStack Infrastructure
We have open sourced our infrastructure! Lots of projects, including ones for configuration available via: Elizabeth K. Joseph @pleia2

4 How this came about Puppet show, featuring:
Monty Taylor (stick puppet) James E. Blair (stick puppet) How this came about Elizabeth K. Joseph @pleia2

5 Why? Examples are awesome
(I don't want to spend all week figuring out how to use your puppet module) Elizabeth K. Joseph @pleia2

6 Why? Encourages better practices
(our upgrade to Puppet 3 was not so painful) Elizabeth K. Joseph @pleia2

7 Allows others in your organization to suggest changes
Why? Allows others in your organization to suggest changes Elizabeth K. Joseph @pleia2

8 Why? Sharing is nice Elizabeth K. Joseph @pleia2

9 OK, so how? Prepare policies Segregate code Document Share!
Elizabeth K. Joseph @pleia2

10 Have an open source policy
All software used in your infrastructure is Open Source ...if not, segregate out proprietary Elizabeth K. Joseph @pleia2

11 Licenses! Add a license to your configuration files :) Seriously.
This is important. Don't make me you to ask the license of your config. I run into unlicensed Puppet configurations far too often, unlicensed means I need to the author, who usually says it's fine for me to use it. Save us both an . For OpenStack we license everything as Apache license because they are used by a lot of companies, so permissive licenses were a community decision Elizabeth K. Joseph @pleia2

12 Puppet: Step 1 Leverage existing modules or write your own with the intent of sharing Apache MySQL Reviewday Keep these outside your generic configuration tree (You're already doing this, right?) It's pretty common practice to share basic modules, so you should probably be doing this anyway. Examples again. Sometimes there is a variable that says “ssh key” and then I have to figure out whether that's the contents of the key or the file, and public or private, client or server... my brain likes examples Reviewday is a Python script we use for generating review statistics for projects tracked in OpenStack. Maybe someone else will want to use it! Elizabeth K. Joseph @pleia2

13 Puppet: Step 2 Split out: system configuration project configuration
This makes it easier to consume by others Elizabeth K. Joseph @pleia2

14 Puppet: Step 3 Split out non-sensitive custom configurations into your own module (Parameterized classes and variables are your friends!) In our configuration we have a separate openstack_project module in our modules directory that has our files (custom CSS, logos) and server manifests Don't put sensitive stuff here. Elizabeth K. Joseph @pleia2

15 Puppet: Step 4 Use Hiera for sensitive data
(Hiera is my favorite thing ever (except for when it's not)) YAML key/value lookup for configuration data Put addresses in here too (they may not seem sensitive until someone downloads your configuration and runs it without reading it) Elizabeth K. Joseph @pleia2

16 Puppet: Step 5 Set up PuppetBoard
Allows people in your org/community to see status without bugging folks with shell access YAML key/value lookup for configuration data Put addresses in here too (they may not seem sensitive until someone downloads your configuration and runs it without reading it) Elizabeth K. Joseph @pleia2

17 Document Links to source Work flow for using the configuration
Contribution instructions Direct commits/reviews Bug reports Bootstrapping and glue Elizabeth K. Joseph @pleia2

18 (Oh, and make sure you have a license)
Share! (Oh, and make sure you have a license) Elizabeth K. Joseph @pleia2

19 Who else has open source Puppet?
Debian: Mozilla: Jenkins: Elizabeth K. Joseph @pleia2

20 Resources OpenStack Project Infrastructure docs: OpenStack Infrastructure repository: OpenStack specs for when we split out some of our configs: specs/specs/config-repo-split.html specs/specs/puppet-modules.html Elizabeth K. Joseph @pleia2


Download ppt "How to open source your Puppet configuration"

Similar presentations


Ads by Google