Slide 1

Slide 1 text

Gitlab Puppet Module and Profiles Or: How do I module?

Slide 2

Slide 2 text

07/07/15 VSHN AG | http://vshn.ch 2 Agenda ● VSHN? Or: How do I spell that? ● Gitlab: Git all the things! ● (Not) just another Gitlab Puppet module ● Customize it: Profiles!

Slide 3

Slide 3 text

07/07/15 VSHN AG | http://vshn.ch 3 /me ● Tobias Brunner aka tobru ● VSHNeer ● Puppetizer since 2011. Modules: – Smokeping – Knot DNS – Gitlab – Identity ● Blog: https://tobrunet.ch ● Twitter: @tobruzh

Slide 4

Slide 4 text

07/07/15 VSHN AG | http://vshn.ch 4 Company Profile | v ʒ | ˈ ɪ nn ● Owner-operated Swiss company ● 12 employees at the head office in Zurich ● Service provider for DevOps, software delivery automation and configuration management ● Partner for operations/hosting of web applications ● Further specialty fields: Consulting, System Engineering, Continuous Delivery, Monitoring, Backup, 24/7 Support

Slide 5

Slide 5 text

07/07/2015 VSHN AG | http://vshn.ch 5 Software Delivery Automation

Slide 6

Slide 6 text

07/07/2015 VSHN AG | http://vshn.ch 6 Gitlab? #1 Create, review and deploy code together

Slide 7

Slide 7 text

07/07/2015 VSHN AG | http://vshn.ch 7 Gitlab? #2 ● Release day: 22nd ● Git ● (Web)Hooks ● Activity stream ● History ● Issues ● Merge requests ● Groups ● ...

Slide 8

Slide 8 text

07/07/2015 VSHN AG | http://vshn.ch 8 A Gitlab Puppet Module #1 ● Forge: Found 6 modules tagged with 'gitlab' – sbadia/gitlab: Plain installation, no Omnibus. Exposes too many parameters. – spuder/gitlab: The original one. A lot (!) of workarounds for all different Gitlab versions. No repo. Bloated. – lboynton/gitlab: Abandonware. – abrader/gms: Not a Gitlab installer. – Aethylred/gitlab: Complicated, a lot of dependencies, no Omnibus. – vshn/gitlab: That's what were talking about.

Slide 9

Slide 9 text

07/07/2015 VSHN AG | http://vshn.ch 9 A Gitlab Puppet Module #2 vshn/gitlab ● init.pp Input validation and class caller ● install.pp Repo management and package installer ● config.pp Omnibus config file writer and gitlab-ctl reconfigure executor ● service.pp Gitlab service manager using gitlab-ctl

Slide 10

Slide 10 text

07/07/2015 VSHN AG | http://vshn.ch 10 A Gitlab Puppet Module #3 vshn/gitlab init.pp Hiera

Slide 11

Slide 11 text

07/07/2015 VSHN AG | http://vshn.ch 11 A Gitlab Puppet Module #4 vshn/gitlab ERB Template

Slide 12

Slide 12 text

07/07/2015 VSHN AG | http://vshn.ch 12 Customize it: Profile #1 Profile: Customize a base Puppet module with specific parameters and add surrounding services: ● Backup ● Monitoring ● Firewall ● ...

Slide 13

Slide 13 text

07/07/2015 VSHN AG | http://vshn.ch 13 Customize it: Profile #2

Slide 14

Slide 14 text

07/07/2015 VSHN AG | http://vshn.ch 14 Customize it: Profile #3 Hiera

Slide 15

Slide 15 text

07/07/2015 VSHN AG | http://vshn.ch 15 Questions?