Script to generate certificates & Puppet-code

Written by Ger Apeldoorn. Posted in Sysadmin

My laziness knows no bounds, I use the script below to automate writing automation puppet code for creating new users (and generating, converting and mailing their certificates too)…

This ruby script will read information from a CSV-file and:

  • generate certificate with a random passphrase
  • create a Putty version
  • email the (encrypted) certificates to the user
  • prints the Puppet-resource definition to STDOUT
  • store the passphrase in a textfile

It will check if the certificates have already been generated (check if directory exists), so you can just add to the CSV-file.

Installing

Prerequisites:

  • Ruby of course
  • some rubygems: mail, csv
  • pwgen
  • ssh-keygen
  • puttygen

Just put the files below in the same directory.

Usage

Edit the userlist.txt to add users; the format is:

userid,username,name,email,groups (groups ; seperated)

Example:

After that’s done, just run the script:

Example output:

After running this, the user receives an email with mailtext.txt as contents and three attachments:

  • id_rsa
  • id_rsa.pub
  • putty_private.ppk

Note that the private keys are protected with the passphrase… ๐Ÿ™‚

Files

gencerts.rb:

mailtext.txt:

Have fun!

PuppetCamp was super!

Written by Ger Apeldoorn. Posted in Nieuws

PuppetCamp Hiera

Mijn Hiera-verhaal


PuppetCamp was een geslaagd evenement met zo’n 250 mensen, ik heb weer een aantal interessante talks gezien en nieuwe dingen geleerd.

Daarnaast is het geweldig om oud-collega’s weer eens te zien en er waren ook vele oud-cursisten. Altijd goed om even bij te praten en te horen of ze de theorie van de trainingen in de praktijk hebben kunnen brengen.

Het was ontzettend leuk om het praatje over Hiera te doen en heb een hoop positieve reacties gekregen. Tijdens de borrel was het nog even goed napraten met andere geinteresseerden, ik hoop dat ik een hoop mensen heb kunnen aanzetten om Hiera te gaan gebruiken!

Slides PuppetCamp
PuppetLabs relaas van het event

Bijna klaar voor PuppetCamp!

Written by Ger Apeldoorn. Posted in Nieuws

Dat was even stressen, het scherm van mijn Dell XPS heeft mij totaal in de steek gelaten. Nadat Dell 2x met het verkeerde onderdeel op de stoep stond blijkt dat het juiste scherm helemaal niet leverbaar is.

Onderdeel van mijn Hiera presentatie morgen is een demo, waarbij ik een paar VM’s draaiend moet hebben. Een oud bakkie was dus geen optie. Gelukkig op het laatste moment nog een courante laptop van Fundeon kunnen lenen en vanmiddag ingericht.

Nu alleen nog ‘even’ de presentatie doen, er schijnen meer dan 200 mensen te komen! :/

PuppetCamp Amsterdam

Written by Ger Apeldoorn. Posted in Nieuws

Op 5 april wordt er een PuppetCamp in Amsterdam georganiseerd, waar ik iets over Hiera ga vertellen.

Het is een gevarieerd dagprogramma, ook de stichter van PuppetLabs is van de partij.

Het programma:
9:00 – 9:30: Registration and Breakfast
9:30 – 10:30: State of Puppet: Luke Kanies – Puppet Labs Founder & CEO
10:30 – 11:15: Automated OS and Application deployment using Razor and Puppet: Jonas Rosland – EMC
11:15 – 12:00: Refactoring Puppet: James Fryman – Github
12:00 – 1:00: Lunch
1:00 – 1:40: Accelerate and unify network deployment with Puppet on Juniper: Cody Herriges – Puppet Labs
1:40 – 2:20: How and why you should test: Daniele Sluijters – Nedap
2:20 – 3:00: Story of Puppet @eBay Global Classifieds Group (eCG): Vladimir Lazarenko – eBay
3:00 – 3:15: Break
3:15 – 4:00: Puppet and AWS: Getting the best of both worlds: Mike Ryan – Fashiolista
4:00 – 4:20: Hiera demo: Ger Apeldoorn
4:20 – 5:00: Puppet Demos: Stephen Johnson  – Puppet Labs
5:00 – 6:00: Reception

Morgen start de eerste Advanced training!

Written by Ger Apeldoorn. Posted in Nieuws

Morgenochtend gaat de eerste “Advanced Puppet” training van start, het is een erg interessante cursus met gevarieerde onderwerpen.

Nu nog even de sheets doornemen en de setup aan het testen, ik heb er zin in!

Betere versienummers bij Puppet runs

Written by Ger Apeldoorn. Posted in Sysadmin

Bij elke Puppetrun wordt er een configuratieversie getoont, dit is een nummer gebaseerd op datum/tijd.

Voorbeeld:

Aangezien wij onze manifests en hiera-data met Git beheren (en die met tags uitrollen) kunnen we daar natuurlijk beter iets aan koppelen waar we wat aan hebben:

Zoals je hierboven kunt zien is het versienummer uit 3 componenten opgebouwd:

  • Tag Manifests
  • Tag Hieradata
  • Environment

Daar heb je tenminste wat aan!

Om dit voorelkaar te krijgen, moeten we een paar handelingen verrichten:

  • Script plaatsen
  • Configuratie Puppet Master aanpassen
  • Puppet Master restarten

Script

Maak een scriptje aan (/etc/puppetlabs/puppet/version.sh) met de volgende inhoud:

Maak hem executable:

Configuratie Puppet Master

Voeg aan /etc/puppetlabs/puppet/puppet.conf het volgende regeltje toe onder [main].

Restart Puppet Master

Als laatste restarten we nog even de PUppet Master om de configuratiewijziging te activeren:

Competa Tech-Talk

Written by Ger Apeldoorn. Posted in Nieuws

28 maart a.s. geef ik een presentatie over Puppet in het Competa Conference Center te Rijswijk.

Het gaat om een korte presentatie waarin de voordelen van configuration-management worden belicht en daarna volgt een uitgebreide demonstratie.

De Competa Tech Talks zijn vrij toegankelijk.

Het programma

Time Activity
6:00pm Welcome | Drinks and snacks
6:30pm First session/speaker
7:20pm Q&A
7:30pm Break | Grab a drink – snack
7:50pm Second session/speaker
8:40pm Q&A
8:50pm Nightcap

Train-the-Trainer

Written by Ger Apeldoorn. Posted in Nieuws

Deze week heb ik een dubbele Train-the-Trainer gedaan. Ontzettend leuk, intensief, interessant en vermoeiend om 7 dagen aan cursus-informatie in 5 dagen op te nemen.

Dit is de eerste keer dat de “Advanced Puppet” en “Extending Puppet with Ruby” cursussen buiten PuppetLabs zijn gegeven, en er zijn hier en daar nog wat ruwe randjes te bespeuren.

Advanced Puppet

De inhoud was erg interessant en ook hard nodig wanneer je zelf een nieuwe omgeving wilt opzetten. Ik merkte dat een hoop mensen na de Fundamentals training graag meer wilden weten over diverse aspecten die in de Advanced training worden behandeld. Ik verwacht dan ook behoorlijk wat vraag naar de Advanced.

De classroom-setup van deze cursus is duidelijk een stuk complexer dan die van de Fundamentals, het inrichten en opstarten ging dan ook niet vlekkeloos. Overigens bevalt het gebruik van Virtual Machines op de eigen laptops prima, we gaan dit in de toekomst ook voor de Puppet trainingen in Nederland gebruiken.

Ik denk dat een hoop mensen de inhoud van de training erg zullen waarderen, na een snelle review van de Puppet-basics (waarin al meer zit dan in Puppet Fundamentals) gaan we snel de diepte in. Er worden een hoop belangrijke onderdelen behandeld zoals Hiera (Data seperation), Environments, ENC’s, Code Compression & Common Patterns, Virtual en Exported Resources, Scaling Puppet, MCollective en nog veel meer.

Het is duidelijk dat je wel ervaring met Puppet nodig hebt om bij te blijven, want het gaat behoorlijk hard.

Ruby Primer

Voorafgaand aan de Extending Puppet-training is een dag Ruby Primer. Hierin worden de basics van Ruby in sneltreinvaart uitgelegd voor de cursisten die nog weinig ervaring met Ruby hebben. Mijn Ruby was behoorlijk roestig, maar het was prima te volgen.

In tegenstelling tot de Advanced en Extending training was dit voornamelijk theorie, weinig hands-on oefeningen.

Extending Puppet

De Extending Puppet cursus is voornamelijk gericht op ontwikkelaars en gaat al uit van een behoorlijke Ruby-kennis. Als sysadmin merkte ik dat de meeste uitdagingen in de simpele Ruby-acties zaten. “Hoe maak ik een [array|regexp|woord] uit deze string?” enz. enz.

Het bouwen van de verschillende uitbreidingen toont wel aan hoe ontzettend flexibel Puppet kan zijn. Custom Facts, Functions, Types en Providers, Faces, Reports, Hiera-backends en MCollective extensies maken al wat denkbaar is mogelijk. ๐Ÿ™‚

Aangezien Puppet out-of-the-box al ontzettend veel kan, denk ik niet dat er heel veel vraag naar deze training zal zijn, maar hij was erg interessant om te doen.

Eerste trainingdata voor Advanced

De eerste Advanced-training is gepland: 4-6 maart. Klik Hier om je op te geven.

NLUUG presentatie online

Written by Ger Apeldoorn. Posted in Nieuws

Afgelopen november heb ik tijdens de najaarsconferentie van de NLUUG een presentatie over Puppet gedaan, hij is zojuist online gekomen. Vanaf 8:30 begint de demonstratie.

Fosdem 2013

Written by Ger Apeldoorn. Posted in Nieuws

fosdem2013
De knapzak is gepakt, morgenvroeg gaan we op weg naar Fosdem in Brussel. 24 zalen met talks over van alles en nog wat, zie dan maar eens te kiezen!

Ik beman ook nog enige tijd de Puppet Community Booth, dus we gaan ons zeker goed vermaken!