Get Puppet Enterprise First 10 nodes are free!
Try it now
Request a demo
Automate IT and infrastructure, manage complex workflows, and mitigate risk at scale.
Try the full-featured Puppet Enterprise for free on 10 nodes.
Puppet Comply Find and prevent compliance failures
Compliance Enforcement Modules Remediate to stay in compliance
Continuous Delivery for Puppet Enterprise Build, test, and deploy infrastructure as code faster and easier
Content & Modules Pre-built scripts to automate common tasks
CentOS EOL Here’s how to secure your CentOS infrastructure – even after EOL.
Find thousands of component modules built by the community and guidance on using them in your own infrastructure.
Visit Puppet Forge >>
Open Source PuppetPerfect for individuals and small infrastructure
BoltAutomate tasks in orchestration workflows
See all open source projects >>
Contribute to open source projects >>
What do you get when you mix DevOps Engineers, BBQ, and uncontrollable fits of throwing yourself off of mountains? You get Tim Meusel and Robert Müller dropping science around Vox Pupuli and how to build an awesome open source community. They also share some valuable insights around how they got started with Ruby, some lessons learned from a few mistakes they’ve made, and most importantly how to get involved with Vox Pupuli in this episode of Pulling the Strings Podcast.
Join the Puppet Community on Slack
00:00:15Demetrius MalbroughHey, everyone, thanks for joining this episode of Pulling the Strings podcast powered by Puppet. I'm delighted to be your host. My name is Demetrius Malbrough, principal technical product marketing manager here at Puppet. And I'm really excited today to talk with Tim Meusel, Puppet community leader, and Robert Müller, Vox Pupuli tasks maintainer. So Tim works as a DevOps engineer at a big Internet service provider where he develops and maintains a big public cloud platform. And Tim is the driving force behind various open source solutions at work. He is very active at Vox Pupuli maintainer and Project Management Committee member. Tim has been doing work in the DevOps area since 2009 and is pursuing Puppet solutions since 2012. Recently, he was reelected to serve on the Vox Pupuli Project Management Committee. And he enjoys good barbecue and ice hockey, which are very, very both important things.
00:01:23Tim MeuselHi, Demetrius. I'm doing pretty good. It's sunny weather in Cologne where I'm sitting at the moment and had a good day so far.
00:01:30Demetrius MalbroughAnd also, Robert, he works as a DevOps, as our engineer at a Middle-Sized hosting provider where he builds a new cloud platform, maintains and develops its infrastructure and software. And in his free time, he works on several I.T. related projects, like putting sensors on a foosball table or planters. And also, he likes photography, Legos and throwing himself off mountains using mountain bikes.
00:01:58Robert MüllerYeah, hi everyone. Not good weather in Munich, but a good day as well.
00:02:04Demetrius MalbroughMan, I'm actually jealous that you guys are in those places that sound really cool to me that I have never visited. So hopefully, hopefully the weather will hold up for both of you. Let's go ahead and start with some of the questions that I have for you. I have a lot to cover and I am very curious about what you are both working on. So you have an application that you wrote and you wrote it in Ruby. Now, how did you get started with Ruby?
00:02:33Tim MeuselSo for me, it started at something around seven years ago when I joined another company that had some self-written internal applications in Ruby. And in a classic way, the original developer left the company. Someone had to take over maintainance ship. So I basically had to learn Ruby, or I had to write Ruby. I would not say that I understand it or that I'm a perfect developer, but I somehow had to get used to it. And that's basically how I started to write small web applications and APIs and they grew over time. And now together with Rolet, we are writing something that's pretty big with a huge amount of complex logic.
00:03:22Demetrius MalbroughWhat about you, Robert? How did you get started with Ruby?
00:03:24Robert MüllerYeah, for me it's like like six years ago. So the funny thing is, it's the same company as Tim started, and so it's the same set of applications and they're close. So, I mean, I started there. We transformed the existing virtual Zervos product into some kind of newish some sort of cloud style product. So we rewrote our Bacon stack in Ruby. And so that's the way I learned it. And from the day on, I'm used to writing my book into a movie.
00:04:04Demetrius MalbroughOkay, great. So I guess let's take a step back, and I probably put the cart before the horse. So you are both involved in Vox Pupuli and so can you explain what that is and how you both became involved in that?
00:04:18Tim MeuselYeah, sure. So I think almost seven and a half or eight years ago, Puppet became a real thing and it got distributed to many, many big companies. And people noticed that many system administrators basically always reinvent the wheel with Puppet. So they wrote some code to manage their Web server in one company, and the next company basically does the same. And this doesn't make much sense. So if you write it once, you could share it with other people. That was the basic idea of Vox Pupuli that we are a collective of system administrators and developers that share Puppet knowledge and keep maintaining existing modules to make it easier. So not everybody has to do it on their own. And no matter if it's on their free time or on paid time for a company. And I joined the community around four and a half years ago because I was using a very good module that the community maintained and I identified a bug, but I wasn't able to fix it on my own because I didn't know much Puppet language back in the days, and on the website of voxpupuli.org, there was an IRC chat linked. I joined the chat and a few minutes later people were able to help me to fix the issue on my own, which was a very, very nice feeling because there were people that I never met living in a completely different culture and a different time zone. And they were just friendly to me and they help me. And that was nice. And so I stick to the community. And three years later, I was basically elected among four other people as one of their leaders. And I'm now representing Vox Pupuli on different podcasts like here, or on conferences and speak about the community and how everything evolved over time.
00:06:26Demetrius MalbroughI appreciate you straightening out the correct pronunciation of it, Vox Pupuli, and I still may have jacked it up, but.
00:06:35Tim MeuselI think nobody is 100% sure what the correct pronunciation is. But I like to talk with people about it because everybody does it in a different way and it's a made up word, so.
00:06:48Demetrius MalbroughOh really?
00:06:50Demetrius MalbroughSo who made it up? Robert, did you make it up or?
00:06:54Robert MüllerNo, not not my fault.
00:06:57Demetrius MalbroughNot your fault. All right. So so Robert, how do you pronounce it then?
00:07:01Robert MüllerI would say Vox Pupuli.
00:07:04Robert MüllerI am not sure what's the correct way.
00:07:07Demetrius MalbroughThat's what we're going to go with. Vox Pupuli. All right. So also just moving moving a little deeper into the Vox Pupuli task and the application that you wrote. I remember having a conversation with you, Tim, and you talked about an email that went out to about one hundred and fifty people, like it spammed all of these people. Can you talk a little bit about that? I think that would be interesting to share.
00:07:34Tim MeuselYeah. So first of all, I think I need to explain a bit what we do in our application. So we identified that there are many manual ways when we review code as a contributor in the community. There are many, many tasks that we need to do and they take up a bunch of time. One of those tasks, for example, is that we get a pull request where somebody changed code, and to this pull requests we can attach the label for something. For example, we can mark the pull requests as something that fixes a bug, or it updates the documentation, or it provides a new feature. So we can put the new code in a few categories, but we can also attach a label when the person that initially created it needs to keep working on it because it's not ready yet. And we try to automate this. So we attached a label to it and posted automatically a notification in it saying, "hey, person, thanks for your contribution. It looks pretty good. But please take a look at it again. You need to fix a few things." And when the person does a change, we automatically can remove the label again, so we know everything. Without a label, it's something that we need to look into with our own eyes. And that was the basic idea of it. Sadly, Robert and I messed up the implementation a bit, and we attached the label and we noticed, oh, there is a new change. Basically the new labels. So we removed it again. And this was basically happening in a loop, which triggered sending out emails for every change that we did. And we have roughly one hundred and fifty people that get notifications for every change. So we created a lot of spam, and, yeah.
00:09:37Demetrius MalbroughSo out of those hundred and fifty people, how many of those people blocked you? Or are no longer your friends?
00:09:45Tim MeuselThat's a good question. Happily, I don't have numbers about that. I don't want to know.
00:09:52Demetrius MalbroughAll right. And let's see. So it sounds like the initial write up was kind of an accident, right? So I guess you event--you may have modified it a little bit more and it turned out to be more of what you were expecting it to do. Is that right?
00:10:11Robert MüllerYeah, it did. The first idea came initially from Tim and was like one big Ruby script that downloaded some files, checked for version numbers, and that sort of thing. And at one point we talked about it and that, yeah, especially for newcomers like I am, because I never had any connections to Vox Pupuli before this point, and it's very hard to get an idea of what's happening and what could be done to help the community. So we thought there must be a better way to visualize these tasks and to maintain some boring stuff. So that's what we did.
00:10:58Demetrius MalbroughOK. So we talked a little bit about the spam that was generated by accident. What would you say are some of the pain points that you both we're trying to solve with this application that you wrote?
00:11:13Robert MüllerI would say the reason we started this is that there are many, many repositories on GitHub, and you have to repeat a lot of steps on each of them. For example, attach labels, ensure that labels exist, check for pull requests if they're broken, merge them if they're not, and that's a big pain point we try to resolve I would say.
00:11:39Demetrius MalbroughOK, so this is all open source, right? So can you explain how I guess open source contributions work? There are, I guess, a lot of repos and a lot of pull requests that change often and sometimes they require interaction. Can you go into that a little bit?
00:11:55Tim MeuselSo we have got a list of all the different open source projects that we maintain. And I think here Vox Pupuli is already special compared to other open source projects, because we not only maintain one project, we are a big collective of developers and we have around a hundred and eighty different, smaller projects and we need to maintain all of them and all of them are very similar. So, yes, we have our list of all the different projects and they are all available on forge.puppet.com or on Git Hub. And people, mostly system administrators, working in companies, they need to automate something. They notice, for example, the earlier mentioned Web server that needs to be automated, and they are looking for Puppet code that can do this for them because they don't want to reinvent the wheel. And they find a module that we published on the Puppet Forge, for example, and on the Puppet Forge are links to creating a new issue. Basically, for two different types, the first type that always makes me a bit sad is when somebody wants to report a bug because that always means that we did something wrong and we need to fix it. But people can also request a new feature that we never thought of and that we never considered. And so we will implement. And another big part is that people can, of course, create patches in the form of a pull request. So if a user of our software as a bit more familiar with Puppet, the person can check out the source code locally, write some patches if he's really awesome, and also create a test for it submitted to us as a pull request. And we have around 150 people that are able to review and match such a patch that we receive. So this process is pretty straightforward. The issue that we have is that we receive many pull requests per week and at the moment we have around 550 that are open that need to be reviewed. Yeah.
00:14:10Demetrius MalbroughDo you, you don't manage this stuff by yourself, do you? It's a community, right? So it's a lot of different people jumping in to help out, right.
00:14:17Tim MeuselExactly. So everybody that helps out is doing it in their free time. They don't get paid for it. The hundred fifty people always sounds like a huge number, but most of them only do it a few hours a week, maybe on a Saturday afternoon when it's raining outside, something like that. So sadly, not hundred and fifty full-time employees/people.
00:14:42Demetrius MalbroughYeah. What type of people are these? Are these like hardcore developers and IT practitioners, or are there any, like, decision makers like CIOs involved with this stuff? I know that's a crazy question, but I want to know who the audience is.
00:14:57Tim MeuselIt's pretty mixed. So I think most people that talk about their role in a company that they work for report that they are system administrators working in smaller teams. And they use Puppet at work and the people often use very outdated software. Sadly. And many of them are not used to writing pitches. That's something that we learned in the past, so a person that's very active in the open source community knows that to get a pitch applied in an open source project, you need to propose a patch as well. So we can verify that the change itself works with the test. But this doesn't seem to be very common in a company. So in a company, people always just write code and assume that it works. That's the impression that I have got. That's the biggest pain point that we have with newcomers in the community. Most of them can write pretty good Puppet code that looks sane, but only the people that are used to open source are able to write tests as well. And only those people are able to explain what that code does. Because if I'm working in a company and I have only three coworkers, or five or six, I know how they think and I know what I need to do, that they understand the code that I have, right? But it's something completely different, explaining my code in a very short message over the Internet to a random stranger. So, yeah, the background of the people is pretty mixed.
00:16:39Demetrius MalbroughSo what about, I guess, the different levels of individuals that like, let's say a new person wanted to get started using it? What's the skill set level? Is this for like a novice or someone who has like a really beefy expertise, who's been coding for several years? Or is there a mix like you said, like what type of person would make the perfect person to actually join the community?
00:17:06Tim MeuselI think every skill level is totally fine. People need to be open minded about technology that's important, and open minded to new people. But everything else we can teach and we have pretty good documentation where people can learn how things need to be done. And I think it's very important that from time to time people join that don't have much coding experience because they have a completely different point of view. And that's important for the community, because otherwise you are getting a sort of lockdown because you're too focused on your view. Your point of view is to narrowed down, and that's not good. So getting fresh people in that are open minded is always nice.
00:17:51Demetrius MalbroughOkay. Yeah. It is always great to get a fresh new perspective. I do agree with that. What are you currently working on right now that you haven't released? Are there any future things that you're working on that you would like to release soon and try to solve a certain type of problem? Any one of you.
00:18:08Robert MüllerSo the last thing we worked on was via a candidate bug with the GitHub API or we have a bug in our application that we cannot use to do labeling of the pull requests Tim mentioned earlier. So that's a big thing we are working on to get this fixed. Another big milestone that a lot of people ask us is to use the application not only for Vox Pupuli as a GitHub organization, but also within the company because a lot of people using internal modules within the company. So that's a large milestone we often think about because that involves a completely new way of using the GitHub API or maybe also the GitLab API. People are hosting the module somewhere else.
00:19:04Demetrius MalbroughOkay. And I guess around anyone who is listening to the episode right now and would really like to maybe join Vox Pupuli. What type of contribution do you think would really help out the community right now? Is there anything that you can think of that is missing, that's needed?
00:19:24Robert MüllerEspecially for the application we are writing, I would say people who are very familiar with the GitHub API would be very helpful.
00:19:33Robert MüllerBecause we are often scrolling down documentation and guessing stuff, so that would be nice.
00:19:42Tim MeuselAnd besides that, I think every contribution is most welcome, too, no matter what kind it is the usual way how people get involved in open source is they've buried the documentation of something, they notice the documentation is outdated or contains some typing errors and they fix the documentation and provide a very, very small pull request, which just changes like two or three lines. And many people say that those contributions are not valuable and many people don't want to make this. But that's such an important step because the documentation of a project is the entry point for every newcomer. If the documentation is bad, it doesn't matter how awesome you are, your code is, because nobody knows how to use it. So nobody will use it. So even small changes like updating a read me in a repository is awesome. And we are always happy to review such changes and match them.
00:20:39Demetrius MalbroughOkay. And how would someone actually join Vox Pupuli?
00:20:43Tim MeuselSo we have multiple ways to interact with us. We have got an IRC channel, but also a mailing list. And a third option is a Slack channel. All of those information are provided on our website, voxpupuli.org, where people can check it out and they just can start interacting with other people that are already in the community or just people that use the software that we provide.
00:21:11Demetrius MalbroughOkay. And Tim, I have to mention this, you love barbecue. Do you smoke and grill barbecue yourself or do you just like to buy it and eat it?
00:21:21Tim MeuselI like to do it both on my own if I find suitable weather and time especially for smoking.
00:21:28Demetrius MalbroughYou have like a special like smoker, like an expensive one, or are you just going to use a regular regular charcoal griller?
00:21:35Tim MeuselOh, that's a funny side story.
00:21:37Demetrius MalbroughAll right. Let's hear it.
00:21:38Tim MeuselI think like, 2017 or something, Puppet made an event where everybody could join the Puppet IRC channel and you could just interact with all the employees and discuss open issues or just provide pitches. Basically a virtual hackathon. And for 24 hours every hour, a random nickname was selected and this person got a gift card for an online shop. And I have won the last gift cards during that hackathon. And from this gift card, I bought my first smoker. And I used it the first time for a meet up for a small Linux distribution. And, you know, I made a meet up somewhere in Germany. So this smoker has an open source hisory, basically.
00:22:40Demetrius MalbroughReally? OK.
00:22:41Tim MeuselYes. So I have a special connection to my smoker because of this story. But it's nothing fancy. It's just a proper one that works.
00:22:50Demetrius MalbroughSo does your smoker have an app? And maybe if you've written you've used Puppet to automate an alert if the temperature drops to a certain level? No?
00:23:02Tim MeuselI always had that in mind, but I never had the time to, honestly. I already have something to measure the temperature that I could use in an application, but I had no time yet to connect it to Puppet. I always have that in my mind.
00:23:19Demetrius MalbroughSo, Robert, I'm not forgetting about you and I can't stop thinking about you throwing yourself off of a mountain with your mountain bike. Tell us about that really quickly.
00:23:29Robert MüllerSo I have lived several years in the area of Germany where a lot of small mountains are, and typically there are bike parks. So if you're going skiing or snowboarding in the winter, the mountains are empty in summer. So in some places you can use those lifts to get up off your mountain bike and then ride down the hill. Yeah, it's a big sport all over the world, too. You can call it mountain biking. Some people would call it enduro or some sort of thing. So I'm trying to do this from time to time. And now I moved to Munich and here are the Alps. So it's a much bigger mountains and much longer ways down. So it's pretty fun.
00:24:14Demetrius MalbroughWow. The Alps. I would love to see the Alps. So as far as Lego building, really quickly, like, what is the most awesome thing that you have built with Legos?
00:24:25Robert MüllerIt's not that I have built huge stuff. I recently received all the Lego from my from my parents and they found it in their house. It's like, it's for most, childhood one. It's one big bag of all Legos mixed up together, and now my job is to separate them to the original articles and what they used to be. So I try to puzzle them together. All the missing pieces. And looking at the instructions to try to separate them all. It's a big mess.
00:25:01Demetrius MalbroughI can imagine. So, everyone, you've heard that barbecue and Legos and mountain biking, they all have something to do with automation and using Puppet to be awesome. Robert and Tim, can you let the listeners know how to, I guess, maybe reach out to you on social media if you'd like?
00:25:22Tim MeuselSure. I'm available on Twitter/X as @BastelsBlog and I'm available as BastelFreak on every bigger platform mentioning Freenode, and we have our IRC channel, but also on at the same name at GitHub.
00:25:39Robert MüllerI'm available at GitHub and on all other platforms as well. One exception is Twitter/X. There my nickname is @Was1NicerDude. It's a bit complicated to spell, I guess. Yeah. If you have questions, feel free to ask. And feel free to reach out to me. You can also write email. So that's listed on GitHub as well.
00:25:59Demetrius MalbroughOK. Well, I truly enjoyed the conversation. I learned quite a bit about Vox Pupuli. And once again, I am probably jacking the name up, but that's kind of what I do, right? But thank you all so much for joining Pulling the Strings. I really appreciate it. And I would like to thank both of you for sharing with us on Pulling the Strings podcast powered by Puppet.