SlideShare a Scribd company logo
1 of 38
Download to read offline
Porting Puppet to
OpenBSD
Jasper Lievisse Adriaanse
Engineering team, m:tier
Puppet Camp Berlin 2014
April 11th, 2014
Puppet Camp Berlin 2014
Agenda
●
Introduction
●
OpenBSD
●
General considerations
●
Puppet stack
●
Current challenges
●
Best practices
●
Closing
Puppet Camp Berlin 2014
Introduction
Puppet Camp Berlin 2014
Who?
●
Who am I?
●
Jasper Lievisse Adriaanse
– OpenBSD
– Puppet
– GNOME
●
OpenBSD developer since 2006
Puppet Camp Berlin 2014
m:tier
Puppet Camp Berlin 2014
m:tier
●
Who are we?
●
OpenBSD developers
●
Breathe open source
●
Secure system architects
Puppet Camp Berlin 2014
m:tier
●
What do we do?
●
OpenBSD
●
Puppet
●
Zabbix
●
Bacula
●
Open Source Software consultancy /
implementation
Puppet Camp Berlin 2014
m:tier
●
But also
●
OpenBSD Long Term Support
●
Binary patches
●
Thin Client
●
GNOME for OpenBSD
●
GNOME automounter for BSD
– opensource.mtier.org
Puppet Camp Berlin 2014
OpenBSD
Puppet Camp Berlin 2014
OpenBSD
●
OpenBSD?
●
Unix-like, multi-platform operating system
●
Derived from 4.4BSD, NetBSD fork
● Kernel + userland + documentation maintained
together
● 3rd party applications available via the ports system
● Anoncvs, OpenSSH, OpenBGPD, OpenSMTPD
strlcpy(3)/strlcat(3), etc
● Runs on many platforms...
Puppet Camp Berlin 2014
OpenBSD
● Platforms
● 21 supported platforms
– from amd64to mvme88kto zaurus
Puppet Camp Berlin 2014
OpenBSD
Puppet Camp Berlin 2014
OpenBSD
Puppet Camp Berlin 2014
OpenBSD
Puppet Camp Berlin 2014
General considerations
or
“OpenBSD oddities”
Puppet Camp Berlin 2014
OpenBSD “oddities”
●
No root:root
●
instead root:wheel
● UID < 500
● vs. UID < 1000
●
package takes “favors”
Puppet Camp Berlin 2014
OpenBSD “oddities”
● The world isn't i386^Wamd64-only
● Stuck with Ruby 1.9
●
until exotic alphaand hppaare fxed for 2.0
●
2.1 is still miles away (mips64broken too)
Puppet Camp Berlin 2014
Puppet stack
Puppet Camp Berlin 2014
Ruby
●
Ruby
●
Actually, Ruby was in a pretty good shape of
modern architectures...
●
...slightly less so onsparc64.
Puppet Camp Berlin 2014
libshadow
●
libshadow
●
enables usage of theuser's passwordproperty
●
didn't support non-Linux a few years ago
– did support non-Linux a few month ago
●
free ride for us
Puppet Camp Berlin 2014
Facter
●
Facter
●
Added OpenBSD support for various facts
●
New SSH key facts fored25519keys
●
Minor *BSD-related cleanups
Puppet Camp Berlin 2014
Puppet
●
Puppet
●
Package provider
– pkg.confsupport
– Features:
●
:purgeable
●
:install_options
●
:uninstall_options
Puppet Camp Berlin 2014
Puppet
●
Puppet (cont.)
●
remountssupport for *BSD
●
SSHed25519key support to various types
Puppet Camp Berlin 2014
PuppetDB
●
PuppetDB
●
Path and shell command tweaks
●
OpenBSDrc.dscript
Puppet Camp Berlin 2014
mcollective
●
Puppet MCollective module
●
user/group/package made configurable
Puppet Camp Berlin 2014
Current challenges
Puppet Camp Berlin 2014
Challenges
●
package
●
ensure => 'latest'
Puppet Camp Berlin 2014
Challenges
●
service
● rc.d provider recently added
Puppet Camp Berlin 2014
Challenges
● Ruby > 1.9
● 3.5.x supports 2.1
● OpenBSD not ready yet
Puppet Camp Berlin 2014
Challenges
● Submit outstanding patches
● Facter
– Fix virtualfact
– Add swap{free,size}_mbfacts
● Puppet
– UID < 1000
– Use passwd(1)for expiry
Puppet Camp Berlin 2014
Best practices
or,
low hanging fruit
Puppet Camp Berlin 2014
Best practices
● root group
Bad
group => 'root'
Good
group => 0
or
group => $root_group
Puppet Camp Berlin 2014
Best practices
● user/group names
Bad
user { 'activemq': … }
Good
user { $activemq_user: … }
Puppet Camp Berlin 2014
Best practices
● Package names
Bad
package { 'activemq': … }
Good
package { $package: … }
Puppet Camp Berlin 2014
Best practices
● No default fail in case
Bad
case $operatingsystem {
'RedHat': { $www = 'httpd' }
'Debian': { $www = 'apache' }
default: { $www = 'this-may-work-yay' }
}
Good
case $operatingsystem {
'RedHat': { $www = 'httpd' }
'Debian': { $www = 'apache' }
default: { fail('Unrecognized platform.') }
}
Puppet Camp Berlin 2014
Closing
Puppet Camp Berlin 2014
Thank you,
Eric Sorensen (ahpook)
Adrien Thebo (athebo)
Ken Barber (kbarber)
Puppet Camp Berlin 2014
Thank you!
mail: jasper@{openbsd,mtier}.org
www:www.mtier.org
twitter: @jasper_la / @mtierltd

More Related Content

What's hot

Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
Andrey Vagin
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
NETWAYS
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
Anatoly Bubenkov
 

What's hot (20)

Virtual Machines and Docker
Virtual Machines and DockerVirtual Machines and Docker
Virtual Machines and Docker
 
NetBSDworkshop
NetBSDworkshopNetBSDworkshop
NetBSDworkshop
 
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
 
Docker-Vancouver Meetup - March 18, 2014 - An Introduction to Docker
Docker-Vancouver Meetup - March 18, 2014 - An Introduction to DockerDocker-Vancouver Meetup - March 18, 2014 - An Introduction to Docker
Docker-Vancouver Meetup - March 18, 2014 - An Introduction to Docker
 
Strategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and imagesStrategies for developing and deploying your embedded applications and images
Strategies for developing and deploying your embedded applications and images
 
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo..."Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
 
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph GaluschkaOpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
OpenNebula Conf 2014: CentOS, QA an OpenNebula - Christoph Galuschka
 
Linux Containers & Docker
Linux Containers & DockerLinux Containers & Docker
Linux Containers & Docker
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los AngelesDocker 0.11 at MaxCDN meetup in Los Angeles
Docker 0.11 at MaxCDN meetup in Los Angeles
 
Openwrt frontend backend
Openwrt frontend backendOpenwrt frontend backend
Openwrt frontend backend
 
NetBSD workshop
NetBSD workshopNetBSD workshop
NetBSD workshop
 
Vagrant are you still develop in a non-virtual environment-
Vagrant  are you still develop in a non-virtual environment-Vagrant  are you still develop in a non-virtual environment-
Vagrant are you still develop in a non-virtual environment-
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
 
CloudOpen North America 2013: Vagrant & CFEngine
CloudOpen North America 2013: Vagrant & CFEngineCloudOpen North America 2013: Vagrant & CFEngine
CloudOpen North America 2013: Vagrant & CFEngine
 
pkgsrc 2013 - the record of the past year
pkgsrc 2013 - the record of the past yearpkgsrc 2013 - the record of the past year
pkgsrc 2013 - the record of the past year
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
Step by Step - Reusing old features to build new ones
Step by Step - Reusing old features to build new onesStep by Step - Reusing old features to build new ones
Step by Step - Reusing old features to build new ones
 
Docker. Micro services for lazy developers
Docker. Micro services for lazy developersDocker. Micro services for lazy developers
Docker. Micro services for lazy developers
 
Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?
 
about Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospringabout Debian "squeeze" @201002 OSC Tokyospring
about Debian "squeeze" @201002 OSC Tokyospring
 

Similar to Porting Puppet to OpenBSD

Similar to Porting Puppet to OpenBSD (20)

Docker based-Pipelines with Codefresh
Docker based-Pipelines with CodefreshDocker based-Pipelines with Codefresh
Docker based-Pipelines with Codefresh
 
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of ContainerOSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
 
OSDC 2017 | VMware's (Open Source) way of Container by Dr. Udo Seidel
OSDC 2017 | VMware's (Open Source) way of Container by Dr. Udo SeidelOSDC 2017 | VMware's (Open Source) way of Container by Dr. Udo Seidel
OSDC 2017 | VMware's (Open Source) way of Container by Dr. Udo Seidel
 
Open Source Dev Containers with DevPod - Rich Burroughs.pdf
Open Source Dev Containers with DevPod - Rich Burroughs.pdfOpen Source Dev Containers with DevPod - Rich Burroughs.pdf
Open Source Dev Containers with DevPod - Rich Burroughs.pdf
 
ceph openstack dream team
ceph openstack dream teamceph openstack dream team
ceph openstack dream team
 
Docker based-pipelines
Docker based-pipelinesDocker based-pipelines
Docker based-pipelines
 
Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?
 
Efficient development workflows with composer
Efficient development workflows with composerEfficient development workflows with composer
Efficient development workflows with composer
 
LibreOffice. O proxecto referencia para edición de documentos libres (Documen...
LibreOffice. O proxecto referencia para edición de documentos libres (Documen...LibreOffice. O proxecto referencia para edición de documentos libres (Documen...
LibreOffice. O proxecto referencia para edición de documentos libres (Documen...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
10 tips for continuous integration
10 tips for continuous integration10 tips for continuous integration
10 tips for continuous integration
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
Docker Continuous Delivery Workshop
Docker Continuous Delivery WorkshopDocker Continuous Delivery Workshop
Docker Continuous Delivery Workshop
 
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro WorkshopOpen Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
 
Automated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build ServiceAutomated Snap Package build processes without the Build Service
Automated Snap Package build processes without the Build Service
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
 
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
 
kpatch.kgraft
kpatch.kgraftkpatch.kgraft
kpatch.kgraft
 
Mono Repo
Mono RepoMono Repo
Mono Repo
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Porting Puppet to OpenBSD

  • 1. Porting Puppet to OpenBSD Jasper Lievisse Adriaanse Engineering team, m:tier Puppet Camp Berlin 2014 April 11th, 2014
  • 2. Puppet Camp Berlin 2014 Agenda ● Introduction ● OpenBSD ● General considerations ● Puppet stack ● Current challenges ● Best practices ● Closing
  • 3. Puppet Camp Berlin 2014 Introduction
  • 4. Puppet Camp Berlin 2014 Who? ● Who am I? ● Jasper Lievisse Adriaanse – OpenBSD – Puppet – GNOME ● OpenBSD developer since 2006
  • 5. Puppet Camp Berlin 2014 m:tier
  • 6. Puppet Camp Berlin 2014 m:tier ● Who are we? ● OpenBSD developers ● Breathe open source ● Secure system architects
  • 7. Puppet Camp Berlin 2014 m:tier ● What do we do? ● OpenBSD ● Puppet ● Zabbix ● Bacula ● Open Source Software consultancy / implementation
  • 8. Puppet Camp Berlin 2014 m:tier ● But also ● OpenBSD Long Term Support ● Binary patches ● Thin Client ● GNOME for OpenBSD ● GNOME automounter for BSD – opensource.mtier.org
  • 9. Puppet Camp Berlin 2014 OpenBSD
  • 10. Puppet Camp Berlin 2014 OpenBSD ● OpenBSD? ● Unix-like, multi-platform operating system ● Derived from 4.4BSD, NetBSD fork ● Kernel + userland + documentation maintained together ● 3rd party applications available via the ports system ● Anoncvs, OpenSSH, OpenBGPD, OpenSMTPD strlcpy(3)/strlcat(3), etc ● Runs on many platforms...
  • 11. Puppet Camp Berlin 2014 OpenBSD ● Platforms ● 21 supported platforms – from amd64to mvme88kto zaurus
  • 12. Puppet Camp Berlin 2014 OpenBSD
  • 13. Puppet Camp Berlin 2014 OpenBSD
  • 14. Puppet Camp Berlin 2014 OpenBSD
  • 15. Puppet Camp Berlin 2014 General considerations or “OpenBSD oddities”
  • 16. Puppet Camp Berlin 2014 OpenBSD “oddities” ● No root:root ● instead root:wheel ● UID < 500 ● vs. UID < 1000 ● package takes “favors”
  • 17. Puppet Camp Berlin 2014 OpenBSD “oddities” ● The world isn't i386^Wamd64-only ● Stuck with Ruby 1.9 ● until exotic alphaand hppaare fxed for 2.0 ● 2.1 is still miles away (mips64broken too)
  • 18. Puppet Camp Berlin 2014 Puppet stack
  • 19. Puppet Camp Berlin 2014 Ruby ● Ruby ● Actually, Ruby was in a pretty good shape of modern architectures... ● ...slightly less so onsparc64.
  • 20. Puppet Camp Berlin 2014 libshadow ● libshadow ● enables usage of theuser's passwordproperty ● didn't support non-Linux a few years ago – did support non-Linux a few month ago ● free ride for us
  • 21. Puppet Camp Berlin 2014 Facter ● Facter ● Added OpenBSD support for various facts ● New SSH key facts fored25519keys ● Minor *BSD-related cleanups
  • 22. Puppet Camp Berlin 2014 Puppet ● Puppet ● Package provider – pkg.confsupport – Features: ● :purgeable ● :install_options ● :uninstall_options
  • 23. Puppet Camp Berlin 2014 Puppet ● Puppet (cont.) ● remountssupport for *BSD ● SSHed25519key support to various types
  • 24. Puppet Camp Berlin 2014 PuppetDB ● PuppetDB ● Path and shell command tweaks ● OpenBSDrc.dscript
  • 25. Puppet Camp Berlin 2014 mcollective ● Puppet MCollective module ● user/group/package made configurable
  • 26. Puppet Camp Berlin 2014 Current challenges
  • 27. Puppet Camp Berlin 2014 Challenges ● package ● ensure => 'latest'
  • 28. Puppet Camp Berlin 2014 Challenges ● service ● rc.d provider recently added
  • 29. Puppet Camp Berlin 2014 Challenges ● Ruby > 1.9 ● 3.5.x supports 2.1 ● OpenBSD not ready yet
  • 30. Puppet Camp Berlin 2014 Challenges ● Submit outstanding patches ● Facter – Fix virtualfact – Add swap{free,size}_mbfacts ● Puppet – UID < 1000 – Use passwd(1)for expiry
  • 31. Puppet Camp Berlin 2014 Best practices or, low hanging fruit
  • 32. Puppet Camp Berlin 2014 Best practices ● root group Bad group => 'root' Good group => 0 or group => $root_group
  • 33. Puppet Camp Berlin 2014 Best practices ● user/group names Bad user { 'activemq': … } Good user { $activemq_user: … }
  • 34. Puppet Camp Berlin 2014 Best practices ● Package names Bad package { 'activemq': … } Good package { $package: … }
  • 35. Puppet Camp Berlin 2014 Best practices ● No default fail in case Bad case $operatingsystem { 'RedHat': { $www = 'httpd' } 'Debian': { $www = 'apache' } default: { $www = 'this-may-work-yay' } } Good case $operatingsystem { 'RedHat': { $www = 'httpd' } 'Debian': { $www = 'apache' } default: { fail('Unrecognized platform.') } }
  • 36. Puppet Camp Berlin 2014 Closing
  • 37. Puppet Camp Berlin 2014 Thank you, Eric Sorensen (ahpook) Adrien Thebo (athebo) Ken Barber (kbarber)
  • 38. Puppet Camp Berlin 2014 Thank you! mail: jasper@{openbsd,mtier}.org www:www.mtier.org twitter: @jasper_la / @mtierltd