Starting & Running a Puppet User Group:

THE COMPLETE GUIDE

Welcome to the PUG Guide! Puppet User Groups (PUGs) are meetups organized by community members interested in gathering to discuss Puppet. Anyone can start a Puppet user group. This packet is stuffed full of tips on getting your Puppet user group going, keeping it active, and problem solving in the face of difficulties. User groups are all different, and each one comes with its own struggles. The instructions on our website are the basic tips and steps you'll need, but if you want more advice, this is the right packet for you!

Table of Contents:

  1. What is a Puppet user group?
  2. PUG Organizer Resources
  3. Starting a User Group
    • Preventing Overlap
    • Creating a Meetup page
    • Customizing your Meetup Page - so fancy!
    • Creating a Google Group
    • Next Steps
  4. Finding a Venue
    • Preparing the Venue
  5. Sourcing Speakers
    • The First Talk
    • Keeping a Steady Stream of Speakers
    • Can't Find Speakers?
  6. Scheduling Meetings
    • Choosing a Date
    • Describing Your Event
    • Choosing Food
    • Choosing Drink
  7. PUG Promotion
  8. Code of Conduct
  9. What's Next?

1. What is a Puppet user group?

Puppet user groups are meetups where Puppet users gather to learn from each other. They usually happen in the evening, for a few hours. PUGs are community organized and owned. Puppet Labs provides some support for Puppet user groups, but ideally, PUGs are run independently by local community members.

Duties of a Puppet User Group Organizer

  • Create and Maintain a positive, harassment-free space. All PUGs are covered under the Puppet Labs community guidelines and code of conduct (bit.ly/eventconduct). Know these guidelines, and keep your PUG a positive place where no one is harassed, bullied, or made to feel unwelcome. See more in Section 6. Code of Conduct in this packet.
  • Keep the content interesting and technical. While having beginner sessions with high-level content that's more accessible is great, make sure that your PUG isn't hosting talks that are simply marketing or sales pitches without engaging content. Interesting talks will of course promote using valuable tools, because they're interesting!
  • Know when to ask for help from others. Having co-organizers can be invaluable! That way, you don't have to relying solely on yourself to schedule meetups, and the group won't lapse when you're busy. If you no longer have time to organize the PUG, don't feel guilty - just find others to pass it to, and tell them what you've learned running it so they're well prepared. Many very active PUGs have multiple organizers.

Who attends Puppet User Groups?

Open source Puppet users, Puppet Enterprise users, non-users, and those using other software - all are welcome!

Who organizes Puppet User Groups?

Puppet User Groups are intended to be community-run, and everyone who interacts with Puppet is a welcome part of our community. We prefer that the PUGs are run by community members who are enthusiastic, but neutral users of Puppet. We want to avoid any image that Puppet User Groups might be used to promote buying specific services, as that drives away community members. However, we recognize that to get local communities started, the resources and enthusiasm of partners and employees are often essential, and deeply appreciated.

If a PUG is having troubles, we may sometimes move the group to another location and/or replace its organizer. This could happen when the organizer isn't holding regular (quarterly) meetings, when the group is being used to promote / sell products or services or when the group is struggling in some other way.

Know when to ask for help from others

Having co-organizers can be invaluable! That way, you don't have to relying solely on yourself to schedule meetups, and the group won't lapse when you're busy.

2. PUG Organizer Resources

Welcome to the PUG Guide! We want you to have an awesome, successful Puppet User Group. We've created resources for you to use for your PUG - our gift to you! We hope you find them helpful.

The Starting a PUG page has several downloadable several components. Below, we list what those are, and some good ways to use them.

What's in this resource kit, anyway?

  1. PUG Guide
  2. General PUG Logo
  3. General PUG Banner
  4. PUG Direction Signs

A. The Puppet User Group Guide

  • The PUG Guide is a comprehensive text on running a Puppet User Group. You're reading it right now!
  • Check it out - or at least, check out the index and flip through to the sections most useful to you. Enjoy, and send us advice on updates at pug@puppet.com.

B. General PUG Logo

  • This is a PUG logo that any group can use - it looks great, and it says 'Puppet User Group' on it. We hope you like it!
  • A good place to use this is as a logo on your Meetup.com page.
  • If you'd like a personalized logo that lists your city and founding year, you can just email us at pug@puppet.com. Tell us the name of your city [or whatever place name you use for your PUG, and the year your PUG was founded. We'll create a special logo for you!

C. General PUG Banner

  • On Meetup.com, there's also an editable banner for your group title. Attached is a general banner that you're welcome to use! They come in each of the colors that Meetup pages use.
  • If you'd like a personalized banner that lists your city name, you can just email us at pug@puppet.com. Tell us the name of your city [or whatever place name you use for your PUG], and what color your meetup page uses (for example, many are red or purple). We'll create a special banner and send it to you.

D. PUG Direction Signs - Coming soon!

  • Many PUGs meet at universities, or other places where the meeting room isn't immediately obvious from walking in the door. These signs are a resource you can print out and use wherever you need them, to direct attendees to the right place.
  • Looking for a resource that isn't here? Let us know! You can email your suggestions to PUG@puppet.com.

3. Starting a User Group

You want to start a new Puppet User Group. Awesome! You're about to bring local Puppet users together in your area to learn from each other, and have a great time. Plus, people will naturally see you as a Puppet expert and leader.

Preventing Overlap

Make sure that there isn’t already a user group in your area by visiting our user groups page, and doing a quick search online. If there's already a PUG in your region but it's no longer active or hasn't met in a while, contact the organizer or meg@puppet.com about helping to re-energize it. Then:

  • If the previous owner wants to keep it going and is glad to have help, then plan the next meeting! It's useful to find out why the group petered out so you can try to problem solve that. In many cases, the group just needs someone with the time to get things rolling.
  • If the previous owner no longer wants to run the group, ask them to hand it off to you! Ask to be made the organizer on Meetup.com, and moderator of the mailing list if there is one. If at all possible, find out from the previous owner what the group was like before; what was great about it (ex. lots of attendees) and what it struggled with (ex. lining up a venue). That way you can try to maintain what worked well (ex. meeting in a certain part of town on weekdays).
  • If you don't get a response from the previous owner, email meg@puppet.com and she can help get you connected to the organizer, or get the group handed over to you!

If there's already an active PUG in your region, but you're reading this packet, there are many ways you can help contribute to the user group. Talk to the organizer and see what they could use. Usually, what they need help with are the core categories: venue, food sponsor, perk sponsor, and speakers, which are covered in this packet.

Creating a Meetup page

OK, so, let's say there's no pre-existing Puppet User Group yet. What's next? Make a Meetup.com page for the group, so that it's easy for interested folks to find. It's a pretty easy process, just let us know and we’ll set it up for you.

To do this, email pug@puppet.com and we'll create the page for you. After we create it, we'll add you as a co-organizer, and you'll be able to customize everything, and create events, and have full control over the page. The only disadvantages are that you can't add other co-organizers (you can email Meg at the above address and she'll do it), and Meetup will put Puppet as the first organizer it mentions. But everyone will know you're where the power truly lies!

What we need to know, in order to create the meetup page:

  • The convention for naming Puppet User Groups is [City] Puppet User Group', i.e. Portland Puppet User Group, or Denver Puppet User Group. So, we’ll need to know what city you’d like to use.

Customizing your Meetup Page - so fancy!

There are a variety of things you can do to customize your meetup page, after you've added relevant text and tags. The four core visual aspects you can customize are:

  1. Logo
  2. Banner Image
  3. Color of Page
  4. Background

# 1 - Adding a Logo

Adding a logo or image to represent your PUG is the biggest step towards an eye-catching page! Fortunately, we're happy to make it easy for you to have a great logo.

We've created a Puppet User Group logo that you're welcome to use and customize. The PUG Organizer Kit includes a general logo, and a customizable logo.

You're welcome to just use the general Puppet User Group logo. But you can also have one that's customized for your city! Email pug@puppet.com for a custom logo.

Once you've got your PUG's logo, you can upload it by going to your Meetup page, and clicking Group Tools -> Group Settings -> Basics -> scrolling to bottom of page, where you'll find an upload option.

# 2 - Banner Image

You can add a banner image in the space that certainly says [X] Puppet User Group at the top of your page.

You can email pug@puppet.com and ask for a custom banner image. Include the name of your group. We also encourage you to take photos at your meetings, and email us those photos so we can make you a custom banner image using them!

To upload a new banner image, click Group Tools -> Edit Appearance, and the option will show up on a bar at the bottom of your screen. The best banner images are 960px wide by 160px high.

# 3 - Color of Page

You can change the color of your page. The color palette for the pages give the following main choices, with a variety of different background colors:

  • Blue
  • Green
  • Purple
  • Red
  • Orange

To change the color of your page, click Group Tools > Group Settings > Basics > Meetup Group Photo > Upload Photo.

# 4 - Background Image

You can change the background of your page but uploading your own photo or design. We don't have a PUG background available yet, but we're working on making one. We'll let you know when it's ready!

To change the background image of your page, click Group Tools -> Edit Appearance, and the option will show up on a bar at the bottom of your screen.

Ok now you've finished your Meetup page! You are on a good path, my friend.

Creating a Google Group

Do you want to create a corresponding mailing list / Google Group? Some groups use this to great effect, others don't have one, so it's truly "choose your own" territory here. You definitely don't need to have one. PUGs that do use a Google Group have a few key reasons.

  • A Meetup page serves to attract new members (easy to search for and find), and is good for posting the details of each upcoming event. It's not a great discussion platform, though, even though there are message boards. A Google Group is good for discussions about upcoming meetups, such as what topics members want to hear about.
  • A Google Group is an especially useful tool for sourcing talks, by asking what members want to learn more about, and then asking is anyone is willing to speak on those topics.

If you decide to create a Google Group mailing list, there are a few steps to keep in mind

  • Create a Google Group clearly titled after the PUG.
  • Put the link to the Google Group in the description of the Meetup page, and explain what it's for.
  • Put the link to the Meetup page in the Google Group description.
  • Remember to always keep the Meetup page up-to-date with the next meeting info - don't assume all group members will read the Google Group.

Next Steps

  • Post an Introductory Message: Send an email to the puppet-users mailing list, and Puppet Community Slack (the #puppet, #pug, and #announcements channel are good places to start, note that #announcements goes to all members, so be brief) and include the Meetup page link. Let people know that you are starting a user group and ask interested people to contact you for more details. This is a great way to see if there are other people in your area interested in co-organizing, too!
  • Collaborate: Consider finding a few other people in your area who are interested and collaborate with them. You don't necessarily need to run it alone! Even if you run it yourself, have a back-up person in case you are out of town.
  • Attend Meetups: If you don’t already attend DevOps meetups or other related meetups in your area, attend a few to see how people typically run user groups, get tips, and see if people would be interested in attending Puppet User Group meetings.
  • Look at Examples: There are a wide variety on our Puppet User Group list!
  • Contact meg@puppet.com to have your group added to the Puppet User Group page on the Puppet Labs site. We'll see if we can help promote it, too. If you are interested, we can also send you a welcome pack with stickers for your first meeting.

Now it's time to plan your first meeting! Depending on what resources you already have access to, you might end up skipping to promoting your event before you finish planning it. For now, bear with it, and see where these steps take you. This is the meat of the matter (or tofu of the topic, if you prefer), so it's broken into sections by resource.

4. Finding a Venue

Finding a venue is a good starting step.

  • Find out if your office can host. Most Puppet User Groups are held in a large gathering area in a local office. Ideally this should be somewhere centrally located that is easy to get to (access to public transportation or ample parking). Begin by seeing if your company will host the Puppet User Group. If you need to convince them and 'goodwill' isn't enough for them, point to hiring. Hosting a meetup group makes both your company and your office more visible to the local tech community, and you can even build in a part of the meetup where people have a chance to say what roles their companies are hiring for (including yours). If your company won't host, there are plenty of other ways to find a venue.
  • Talk to your friends and ask if their companies might be willing. Usually this is the second place people look. Leverage those strong ties! If they're not sure, ask them to put you in touch with the person in charge of uses of the company space. Personally, though, I don't have scores of friends, so I move on to the next option…
  • Post on the Meetup page and/or Google Group saying that you're looking for a venue, and asking for suggestions. Often a member will step up and volunteer a place.
  • Look up where other user groups meet. Reach out to those companies and ask if you can hold yours there. You can also attend other meetups, and talk to whomever is there from the hosting company, and see if they can help facilitate you using the space.
  • If you still can't find a space, plan the first meeting of your Puppet User Group in a public place, such as a bar. Gathering with other Puppet users over drinks allows for a meeting, and gives you a chance to ask the attendees if any of their companies might be interested in hosting the next meetup.

Preparing the Venue

Once you've found a venue, make sure that venue will be set for the event.

  • Make sure the venue's doors will be unlocked during the meeting, especially since the meeting will likely be after usual business hours.
  • Make sure you know what your members are allowed to touch. For example, the venue might be fine with attendees drinking the free fountain soda, but not with them getting into the food in the fridge.
  • Check what the A.V. situation will be for presenters.
  • Arrive early and leave last so you can make sure to leave the venue's space the way you found it (or better).
  • Make sure your venue choice is wheelchair accessible.

5. Sourcing Speakers

If you're fortunate, you'll find a great venue and be able to stay there. Finding speakers, however, is something you'll have to do every month. Setting up the schedule for each meeting is usually the largest task that goes into running a user group.

The First Talk

Giving the first talk yourself is a great way to kick off the inaugural meeting. If you know someone else who wants to talk, that's great too. If you're not sure what to talk about, or don't feel qualified, that's ok! That's how many people you'll ask to speak will feel. Just go ahead and give the talk, it's great practice.

If you can't think of what to talk, walk yourself through these three options.

  1. Intro to Puppet. Give an Introductory talk, maybe combined with a 'what's new' component. If you want some introductory slides to use, you can email meg@puppet.com and she'll send you some Puppet slides.
  2. How you're using Puppet. Talk about how you're using Puppet at your company (or in your life), or how you've used it in the past. These use cases are valuable for others. Both failure and success stories are popular at user groups.
  3. A favorite Puppet module or project. Perhaps you have a certain interest in a specific module, or a particular project. You could talk about MCollective orchestration engine, Hiera, testing your modules, or PuppetDB.

Keeping a Steady Stream of Speakers

Now you'll need to find a speaker (or multiple speakers) for each meeting. One helpful tactic is to look for speakers for the upcoming meeting at the end of the previous meeting.

  • At the end of each meeting, ask the audience what topics they'd like to hear about next month. Write the topics on a whiteboard if there's one nearby. If everyone is shy, write a few topics up yourself (have them prepared just in case, or make them up on the spot. Modules is a good go-to). Then, read each topic back one by one, asking if anyone would be able to talk about it next month. Write their name next to the topic, and copy the list down afterwards so you can send them a follow-up reminder.
  • If you have a mailing list / google group, email the list after the meeting with the suggested topics. Ask the list if there are any other topics people would like to hear about, and if anyone on the list can talk about the listed topics. This is a great way to get speakers, because often people will say "I don't know anything, I don't know what I would talk about" but when they see a specific topic they say "I know about that!"
  • Personally talk to people at the meetup, and ask them what they're doing with Puppet. After they tell you, say "That would be great to hear more about! Would you be willing to give talk on that at the next meetup?" If people are still nervous, you can break the event into several shorter talks, or a short talk and a discussion, so that giving a talk looks like less of a commitment (ie a 15 minute talk is an easier thing for people to commit to). You can also deputize others to ask people personally if they're interested to talk.

Can't Find Speakers?

  • Set a topic for discussion, and run the meetup as a discussion session on the topic. At the end of the discussion, ask again for topics and speakers as outlined above.
  • Let the audience choose to divide themselves into several breakout sessions. They can write their ideas on the whiteboard, and pull chairs into different sections of the room.
  • Have audience members stand up in front of the group and explain a problem they're trying to solve right now. See if that kicks off some helpful discussion.
  • Watch a recorded talk on Puppet from PuppetConf together, and discuss it afterwards. It can be hard to find time to watch other people’s ideas, so some people will appreciate the opportunity to block out time for it!

6. Scheduling Meetings


Choosing a Date

Choosing a regular date for the meetup is essential.

  • Check Schedules: Do a thorough search for existing meetups with overlapping technologies, and make sure that you don’t choose a date that schedules over an existing recurring meeting that Puppet users are likely to want to attend. For example, scheduling over an Android meetup might be fine, but scheduling it on the same night as a Cloud, Ruby or DevOps meetup is probably not a good idea. Reconnaissance also helps you see what times work well for other groups - for example, starting at 7 so everyone has time to get there through the traffic, and other local factors.
  • Find a rhythm: Choose an easy-to-remember cadence like "last Thursday of every month" or "first Monday of every month." Do your members want to meet every month, or every other month?
  • Be flexible: Ask members at the meetings what days of the week work well for them, and don't be afraid to try out a few different days. If most people say "wednesday works best," change it to a wednesday. And while a regularly meeting user group is most successful, be willing to cancel or change dates for large related events locally. If there's a DevOps Days coming to your city the same week as your meetup, consider cancelling the meeting and encouraging your members to join you at DevOps Days. Alternately, consider holding a meeting related to conferences in town, such as an OpenStack related meeting the month of an OpenStack conference. Be mindful of holidays that fall on or near your meetup date, and consider moving the date for them. If you're unsure, just ask your members what they want.

Good work! Now don't forget to add the details to your Meetup page. Mention when you'll meet ("second tuesday of every month") so people can plan ahead, and list and thank the venue.

Describing Your Event

When you post your next meeting to the Meetup page, include as much information as you can.

Letting the community know what to expect at the event helps you get more attendees! People are more likely to attend events when they feel like they have a clear picture of what will take place at them.

  • Post the schedule for the meeting. Over-informing is better than under-informing here, so go into detail.
  • Is this event Beginner Friendly? If so, make it crystal clear - you'll get more attendees!
  • Will food and drink be available? Will it include vegetarian, gluten-free, vegan, non-alcoholic options? Let folks know so they can plan their meals accordingly.
  • Post a link to the Code of Conduct. You can use Puppet's: http://docs.puppet.com/community/community_guidelines.html
  • Let attendees know whether the venue is wheelchair accessible, and if there is an elevator.
  • What's the closest parking, and how much is it? Is there bike parking? Transit stops nearby?
  • Re-iterate your cadence, for example, "We meet on the second Tuesday of every month" or "This is our monthly meeting, which re-occurs each second Tuesday!"

Choosing Food

If you've obtained sponsorship for food, great! Your attendees will appreciate it. Think about what you choose to feed them - their meal (or snack) is in your hands, now!

  • Pizza is delicious...but that fact is so widely known, many people are just plain sick of it! Shake up convention and try ordering something else.
  • Think about whether the cuisine you're ordering naturally lends itself to Vegetarian, Vegan, and Gluten-free options. For example, at Puppet we order a lot of Lebanese food, since many of the delicious things on the menu that we all enjoy fall into those categories.
  • Is it messy? You don't want to be cleaning up food for hours afterwards, and attendees don't want to make a mess.

Choosing Drink

Many user groups choose to have alcohol present - and many don't! The choice is entirely up to you.

  • You will have to follow the rules of any venue that's hosting you. Some don't allow alcohol; respect this!
  • Make sure there is a clear alternative to alcohol available for those who aren't interested in drinking alcohol that evening.
  • Make sure there is clearly water available. Sometimes water is "available", but out of sight! Try not to make attendees work to find hydration.
  • Attendees won't want to return to an event that tolerates open drunkenness, so keep an eye on other for their safety, and for the future of your group.

7. PUG Promotion

Promoting your group is important so others can find and join it!

  • Post an Introductory Message: Send an email to the puppet-users mailing list, and include the Meetup page link. Let people know that you are starting a user group and ask interested people to contact you for more details. This is a great way to see if there are other people in your area interested in co-organizing, too!
  • Contact meg@puppet.com and ask if Puppet Labs can help promote your group to your local area.
    Hold Joint Meetings: Consider holding a joint meeting with another user group, for example a DevOps meetup, once in awhile. Choose a topic that members of both groups would be interested in, and post the event to both groups pages. The cross-pollination is great for both groups! Examples: "Puppet and OpenStack" (Puppet User Group & OpenStack User Group); "An Introduction to Puppet" (PUG and DevOps Meetup)

8. Code of Conduct

Every meetup should have a code of conduct! This is about setting expectations - people feel more comfortable entering a space (or event) when they know how they, and other people, and expected to behave. Don't "wait until you need one" - you need one now! When I give talks on user groups at conference, this comes up in the audience discussion every time. People attending say they wish they'd had one earlier, and that it should be a no-brainer to create a code of conduct when you start a user group!

Fortunately, it's easy to do. You can just post any one of these sentences in your meeting description:

"All participants are expected to follow this event's code of conduct: bit.ly/eventconduct "
"All participants are expected to follow the code of conduct: bit.ly/eventconduct "
"All participants are expected to follow Puppet's code of conduct: bit.ly/eventconduct "
"All participants are expected to follow the Puppet Community Guidelines: bit.ly/eventconduct "

Setting expectations makes your user group better for everyone! Make sure to follow through on expectations, too - if someone breaches your code of conduct, ask them to leave, and consider asking them to not return. People don't want to attend places where the community's guidelines aren't enforced.

Want to know how more about how to deal with harassment at your event? There's a lot of great information over at the GeekFeminism wiki.

9. What's Next?

Congratulations! You're ready to start your Puppet User Group. Or maybe you already have, and you just came to this packet for a little advice!

There are PUGs in cities all over the world bringing Puppet users together to talk about what they're doing, make local connections, and support each other. Thank you for being a part of this! I know the community appreciates it, and we here at Puppet deeply appreciate it, too.

Tell us how things are going for you. You can email meg@puppet.com with suggestions for this packet; questions or issues you're encountering; and accounts of your PUG adventures!