How to open source your Puppet configuration

Slides:



Advertisements
Similar presentations
SOFTWARE REVISION CONTROL WITH SUBVERSION Evan Dickinson & Andy Huang – 9 March 2011.
Advertisements

Common project problems From Twin Cities CFUG meeting7/10/02.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Learning Management Systems. students faculty content.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
Website Administration Information Systems 337 Prof. Harry Plantinga.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks gLite Release Process Maria Alandes Pradillo.
AI project components: Facter and Hiera
| nectar.org.au NECTAR TRAINING Module 10 Beyond the Dashboard.
The Art and Zen of Managing Nagios with Puppet Michael Merideth - VictorOps
Installing and Using MySQL and phpMyAdmin. Last Time... Installing Apache server Installing PHP Running basic PHP scripts on the server Not necessary.
CPSC 217 T03 Week I Part #1: Unix and HELLO WORLD Hubert (Sathaporn) Hu.
1 PUPPET AND DSC. INTRODUCTION AND USAGE IN CONTINUOUS DELIVERY PROCESS. VIKTAR VEDMICH PAVEL PESETSKIY AUGUST 1, 2015.
Website Administration Information Systems 337 Prof. Harry Plantinga.
Web Hosting Providers TERRY HALL. Requirements  FREE  No advertising  FTP access (or another secure transfer method)  Near 100% uptime  Adequate.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
| nectar.org.au NECTAR TRAINING Module 10 Beyond the Dashboard.
CERN IT Department CH-1211 Genève 23 Switzerland t Migration from ELFMs to Agile Infrastructure CERN, IT Department.
CERN AI Config Management 16/07/15 AI for INFN visit2 Overview for INFN visit.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Configuration Services at CERN HEPiX fall Ben Jones, HEPiX Fall 2014.
Session 2.  Recap of Services We Provide  Refund Policy  Selling Tools Demo(s)  CRM Demo  Commission/Bonus Recap  Teen to show how to configure.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
Indefero Source Code Management Jethro Carr Improving your project's source, bug tracking and documentation with quality open source tools. Indefero Source.
Thinking Outside the Box Linux. Question: What form of transportation racks up the most passenger miles per year? Not cars Not bicycles Not buses Not.
Getting Involved with Ubuntu SCALE 10x Elizabeth
MirrorManager: The Fedora Mirror System Matt Domsch Fedora Mirror Wrangler Linux Technology Strategist Office of the CTO Dell, Inc.
Expanding Involvement in F/OSS Presented by Elizabeth Krumbach Philadelphia area Linux Users Group September 2, 2009.
Open source development model and methodologies.
Pulling the Galaxy’s Strings
Managing Software in Higher Education
Open-O Integration Project Introduction
Stress Free Deployments with Octopus Deploy
Development Environment
@ Bucharest DevOps Hacker Meetup
Essentials of UrbanCode Deploy v6.1 QQ147
Local League Coordinators Meeting
Open Source Systems Administration
Version Control with Subversion
Presented by Elizabeth Krumbach
Online Matching System
A Simple Introduction to Git: a distributed version-control system
Moving to Epicor ERP version 10: Experiences so far
Developing an Effective Team Delegating & Sharing the Tasks
A Career in Open Source Software
Building a career with Ubuntu and FOSS
Software Documentation
Elizabeth K. Joseph A day off-line per week Elizabeth K. Joseph
Building a Career in FOSS
Who is responsible for your marketing? May 2013
Open Source for love, money and fame
Open Source Software for individuals and companies
Listening to the Needs of Your Global Open Source Community
The Websites Team Robert Mayr (robyduck).
How to Use Members Area of The Ninety-Nines Website
Distributed Version Control with git
DHCP, DNS, Client Connection, Assignment 1 1.3
Reporting Based on Data in Archivists’ Toolkit
REAL-TIME, INTERACTIVE DOCUMENT AUTOMATION
CS791v Homework and Submission
Creating your business
Networking Workshop (2)
Background We would like to combine existing User guide and Admin guide currently in PDF form into a single HTML master site This master HTML site will.
By The way, Why Groups? OK every student hates group work
Open Source Continuous Integration System
Vendor Software Lessons From Consulting Vendor Software.
Samuel Kastberg Scripting a BizTalk Server installation
DPDK Community Survey Results
Presentation transcript:

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

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

OpenStack Infrastructure We have open sourced our infrastructure! Lots of projects, including ones for configuration available via: https://git.openstack.org/cgit/openstack-infra Elizabeth K. Joseph @pleia2

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

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

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

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

Why? Sharing is nice Elizabeth K. Joseph @pleia2

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

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

Licenses! Add a license to your configuration files :) Seriously. This is important. Don't make me email you to ask the license of your config. I run into unlicensed Puppet configurations far too often, unlicensed means I need to email the author, who usually says it's fine for me to use it. Save us both an email. 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

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

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

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

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 email addresses in here too (they may not seem sensitive until someone downloads your configuration and runs it without reading it) Elizabeth K. Joseph @pleia2

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 email addresses in here too (they may not seem sensitive until someone downloads your configuration and runs it without reading it) Elizabeth K. Joseph @pleia2

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

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

Who else has open source Puppet? Debian: https://dsa.debian.org/ Mozilla: https://wiki.mozilla.org/ReleaseEngineering/PuppetAgain Jenkins: http://jenkins-ci.org/content/come-join-infra-team Elizabeth K. Joseph @pleia2

Resources OpenStack Project Infrastructure docs: http://ci.openstack.org/ OpenStack Infrastructure repository: https://git.openstack.org/cgit/openstack-infra/ OpenStack specs for when we split out some of our configs: http://specs.openstack.org/openstack-infra/infra- specs/specs/config-repo-split.html http://specs.openstack.org/openstack-infra/infra- specs/specs/puppet-modules.html Elizabeth K. Joseph @pleia2