SlideShare a Scribd company logo
Puppet Control Repository and
GIT
Martin Alfke - example42 GmbH
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 2
Puppet Trainer since 2011
CEO & Co-Founder example42 GmbH
tuxmea (Twitter, GitHub, Slack)
About me
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 3
Puppet Control-Repo
Simple GIT workflow
GIT workflow with staging branch
GIT Flow
Topics covered:
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Puppet Control Repo
4
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Puppet Control Repo
5
One repository for your own code
Separation of upstream modules
(Puppetfile or git submodules)
Branches will become Puppet
environments
Either empty repo or example42 Puppet
System Infrastructure Construction Kit
(PSICK on GitHub).
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Puppet Control Repo
6
Image: tatlin
App-DEV development testing production
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Puppet Control Repo
7
Image: tatlin
App-DEV development testing production
Puppet DEV production
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Puppet Control Repo
8
Image: tatlin
App-DEV development testing production
Puppet DEV production production production
Application Stages
Puppet Environments
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Simple GIT workflow
9
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Simple GIT workflow
10
One long living protected branch
(production)
Differences between stages are in
Hiera.
Activating features using feature flags.
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Simple GIT workflow
11
All changes come via feature branches
Prevent special chars like +, -, %, ...
these environments will not get
deployed.
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 12
Simple GIT workflow
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Simple GIT workflow
13
Pro:
Easy to learn, easy to handle
Con:
No real staging of code, code changes
affect all stages (when activated)
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT workflow with staging branch
14
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT workflow with staging branch
15
Network separation between
development and production?
Separate GIT servers and Puppet
Masters?
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT workflow with staging branch
16
All code must be developed in
development zone
No code may be added in
production, except via merge
requests.
CI/CD Systems synchronizes code
base using a staging branch
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 17
GIT workflow with staging branch
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT workflow with staging branch
18
Pro:
Security separation is taken care on
Con:
Needs automatic merging and staging,
no manual merges.
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
19
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
20
Image: tatlin
ITIL processes?
Strict code separation between
development and production required?
Hot fixes and Features must be
possible?
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
21
Image: tatlin
No merges between branches!
Each branch is an individual
development.
Cherry-Pick into next stage.
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 22
GIT Flow
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 23
GIT Flow
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
24
Image: tatlin
Each feature branch may consist of a
single commit only.
Use git commit --amend or git squash
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
25
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
26
Image: tatlin
GIT Flow
Requires knowledge on
- squashing
- rebasing
- solving merge conflicts
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 27
GIT Flow
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
GIT Flow
28
Image: tatlin
Pro:
Branch specific development possible
Con:
needs deeper understanding on GIT
more work to bring changes into
desired branch
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Summary
29
Simple can be harder than complex:
You have to work hard to get your
thinking clean to make it simple.
But it's worth it in the end because
once you get there, you can move
mountains.
- Steve Jobs
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Conclusion
30
Image: tatlin
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Conclusion
31
Start simple and expand when learning. - K.I.S.S.
Automate everything, also your code deployment!
GIT has a learning curve. Take care on that! Learn GIT!
Never adopt complex workflows if you don’t need them!
“If you use all your smartness to write the code, you have none left to debug
it.” (David Schmidt)
Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH
Conclusion 2
32
Stop social distancing! We need physical distance!
Take care on people who need help!
Puppet Control Repository and
GIT
Martin Alfke - example42 GmbH
Ad

More Related Content

What's hot (12)

What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)
Chris Aniszczyk
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Alexandre Gouaillard
 
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
Aberla
 
Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011
Mayflower GmbH
 
Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual CloudSimplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual Cloud
Liz Warner
 
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTEclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
Charles Rivet
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
Richard Johansson
 
{py}gradle
{py}gradle{py}gradle
{py}gradle
Stephen Holsapple
 
Python+gradle
Python+gradlePython+gradle
Python+gradle
Stephen Holsapple
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
Steffen Gebert
 
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
NETWAYS
 
Papyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on EclipsePapyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on Eclipse
Charles Rivet
 
What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)What's New in Plug-in Development (Galileo)
What's New in Plug-in Development (Galileo)
Chris Aniszczyk
 
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlantaPlugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
Alexandre Gouaillard
 
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
Aberla
 
Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011Continuous Improvement in PHP Projects - PHP UK Conference 2011
Continuous Improvement in PHP Projects - PHP UK Conference 2011
Mayflower GmbH
 
Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual CloudSimplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual Cloud
Liz Warner
 
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RTEclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
EclipseCon 2014 - Modeling symposium lightning talk - Papyrus-RT
Charles Rivet
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
Richard Johansson
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
Steffen Gebert
 
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
stackconf 2020 | Enterprise CI/CD Integration Testing Environments Done Right...
NETWAYS
 
Papyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on EclipsePapyrus for RealTime - Executable Modeling on Eclipse
Papyrus for RealTime - Executable Modeling on Eclipse
Charles Rivet
 

Similar to Puppet Camp Germany 2020 - Puppet Control Repo and GIT (20)

PuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdfPuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdf
Martin Alfke
 
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan HerrmannSupporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Eclipse Day India
 
OSDC 2018 | Ops hates containers. Why? by Martin Alfke
OSDC 2018 |  Ops hates containers. Why? by Martin AlfkeOSDC 2018 |  Ops hates containers. Why? by Martin Alfke
OSDC 2018 | Ops hates containers. Why? by Martin Alfke
NETWAYS
 
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry PiAdafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
Imad Rhali
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++
Daniele Pallastrelli
 
stackconf 2022: Configuration Management vs. Workflows vs. Orchestration
stackconf 2022: Configuration Management vs. Workflows vs. Orchestrationstackconf 2022: Configuration Management vs. Workflows vs. Orchestration
stackconf 2022: Configuration Management vs. Workflows vs. Orchestration
NETWAYS
 
Applications of the future with Power Platform and Copilot
Applications of the future with Power Platform and CopilotApplications of the future with Power Platform and Copilot
Applications of the future with Power Platform and Copilot
Juan Fabian
 
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
Edge AI and Vision Alliance
 
GEFRAN GCube Fit extru+
GEFRAN GCube Fit extru+GEFRAN GCube Fit extru+
GEFRAN GCube Fit extru+
Gefran Inc.
 
PERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONS
PERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONSPERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONS
PERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONS
ATMOSPHERE .
 
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"..."Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
Edge AI and Vision Alliance
 
IBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - WorkshopIBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - Workshop
gjuljo
 
PluginAndPlay-AmsterdamJUG.pptx
PluginAndPlay-AmsterdamJUG.pptxPluginAndPlay-AmsterdamJUG.pptx
PluginAndPlay-AmsterdamJUG.pptx
SimonedeGijt
 
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Burton Lee
 
Tabnet presentation
Tabnet presentationTabnet presentation
Tabnet presentation
Sebastien Fischman
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 
Elastic network of things with mqtt and micro python
Elastic network of things with mqtt and micro pythonElastic network of things with mqtt and micro python
Elastic network of things with mqtt and micro python
Wei Lin
 
Pic18f4550 microcontroller based projects _ PIC Microcontroller.pdf
Pic18f4550 microcontroller based projects _ PIC Microcontroller.pdfPic18f4550 microcontroller based projects _ PIC Microcontroller.pdf
Pic18f4550 microcontroller based projects _ PIC Microcontroller.pdf
Ismailkhan77481
 
Pfau the impact of design thinking
Pfau   the impact of design thinkingPfau   the impact of design thinking
Pfau the impact of design thinking
home
 
Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CI
Uilian Ries
 
PuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdfPuppetCamp2021-Testing Modules and ControlRepo.pdf
PuppetCamp2021-Testing Modules and ControlRepo.pdf
Martin Alfke
 
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan HerrmannSupporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Supporting Java™ 9 in Eclipse - A critical perspective - Stephan Herrmann
Eclipse Day India
 
OSDC 2018 | Ops hates containers. Why? by Martin Alfke
OSDC 2018 |  Ops hates containers. Why? by Martin AlfkeOSDC 2018 |  Ops hates containers. Why? by Martin Alfke
OSDC 2018 | Ops hates containers. Why? by Martin Alfke
NETWAYS
 
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry PiAdafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi
Imad Rhali
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++
Daniele Pallastrelli
 
stackconf 2022: Configuration Management vs. Workflows vs. Orchestration
stackconf 2022: Configuration Management vs. Workflows vs. Orchestrationstackconf 2022: Configuration Management vs. Workflows vs. Orchestration
stackconf 2022: Configuration Management vs. Workflows vs. Orchestration
NETWAYS
 
Applications of the future with Power Platform and Copilot
Applications of the future with Power Platform and CopilotApplications of the future with Power Platform and Copilot
Applications of the future with Power Platform and Copilot
Juan Fabian
 
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
“TensorFlow Lite for Microcontrollers (TFLM): Recent Developments,” a Present...
Edge AI and Vision Alliance
 
GEFRAN GCube Fit extru+
GEFRAN GCube Fit extru+GEFRAN GCube Fit extru+
GEFRAN GCube Fit extru+
Gefran Inc.
 
PERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONS
PERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONSPERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONS
PERFORMANCEATMOSPHERE - PREDICTION OF GPU-BASED DEEP LEARNING APPLICATIONS
ATMOSPHERE .
 
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"..."Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
"Using TensorFlow Lite to Deploy Deep Learning on Cortex-M Microcontrollers,"...
Edge AI and Vision Alliance
 
IBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - WorkshopIBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - Workshop
gjuljo
 
PluginAndPlay-AmsterdamJUG.pptx
PluginAndPlay-AmsterdamJUG.pptxPluginAndPlay-AmsterdamJUG.pptx
PluginAndPlay-AmsterdamJUG.pptx
SimonedeGijt
 
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Burton Lee
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 
Elastic network of things with mqtt and micro python
Elastic network of things with mqtt and micro pythonElastic network of things with mqtt and micro python
Elastic network of things with mqtt and micro python
Wei Lin
 
Pic18f4550 microcontroller based projects _ PIC Microcontroller.pdf
Pic18f4550 microcontroller based projects _ PIC Microcontroller.pdfPic18f4550 microcontroller based projects _ PIC Microcontroller.pdf
Pic18f4550 microcontroller based projects _ PIC Microcontroller.pdf
Ismailkhan77481
 
Pfau the impact of design thinking
Pfau   the impact of design thinkingPfau   the impact of design thinking
Pfau the impact of design thinking
home
 
Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CI
Uilian Ries
 
Ad

More from Martin Alfke (13)

CfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdfCfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdf
Martin Alfke
 
HashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the CloudHashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the Cloud
Martin Alfke
 
Puppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in ModulesPuppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in Modules
Martin Alfke
 
Power of Puppet 4
Power of Puppet 4Power of Puppet 4
Power of Puppet 4
Martin Alfke
 
Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?
Martin Alfke
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
Martin Alfke
 
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaGUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
Martin Alfke
 
Puppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartwayPuppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartway
Martin Alfke
 
One
OneOne
One
Martin Alfke
 
Puppet future parser
Puppet future parserPuppet future parser
Puppet future parser
Martin Alfke
 
developing sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppetdeveloping sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppet
Martin Alfke
 
Gluster fs buero20_presentation
Gluster fs buero20_presentationGluster fs buero20_presentation
Gluster fs buero20_presentation
Martin Alfke
 
Puppet buero20 presentation
Puppet buero20 presentationPuppet buero20 presentation
Puppet buero20 presentation
Martin Alfke
 
CfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdfCfgMgmtCamp 2023 - Puppet is YAML.pdf
CfgMgmtCamp 2023 - Puppet is YAML.pdf
Martin Alfke
 
HashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the CloudHashiTalksDACH-Terraform-Managing training instances in the Cloud
HashiTalksDACH-Terraform-Managing training instances in the Cloud
Martin Alfke
 
Puppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in ModulesPuppet Camp Paris 2016 Data in Modules
Puppet Camp Paris 2016 Data in Modules
Martin Alfke
 
Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?Can you upgrade to Puppet 4.x?
Can you upgrade to Puppet 4.x?
Martin Alfke
 
Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014Upgrading Puppet CommitterConf Essen 2014
Upgrading Puppet CommitterConf Essen 2014
Martin Alfke
 
GUUG Hamburg OpenNebula
GUUG Hamburg OpenNebulaGUUG Hamburg OpenNebula
GUUG Hamburg OpenNebula
Martin Alfke
 
Puppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartwayPuppet camp london-modulerewritingsmartway
Puppet camp london-modulerewritingsmartway
Martin Alfke
 
Puppet future parser
Puppet future parserPuppet future parser
Puppet future parser
Martin Alfke
 
developing sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppetdeveloping sysadmin, sysadmining developersGuug devops puppet
developing sysadmin, sysadmining developersGuug devops puppet
Martin Alfke
 
Gluster fs buero20_presentation
Gluster fs buero20_presentationGluster fs buero20_presentation
Gluster fs buero20_presentation
Martin Alfke
 
Puppet buero20 presentation
Puppet buero20 presentationPuppet buero20 presentation
Puppet buero20 presentation
Martin Alfke
 
Ad

Recently uploaded (13)

plataforma virtual E learning y sus características.pdf
plataforma virtual E learning y sus características.pdfplataforma virtual E learning y sus características.pdf
plataforma virtual E learning y sus características.pdf
valdiviesovaleriamis
 
introduction to html and cssIntroHTML.ppt
introduction to html and cssIntroHTML.pptintroduction to html and cssIntroHTML.ppt
introduction to html and cssIntroHTML.ppt
SherifElGohary7
 
The Hidden Risks of Hiring Hackers to Change Grades: An Awareness Guide
The Hidden Risks of Hiring Hackers to Change Grades: An Awareness GuideThe Hidden Risks of Hiring Hackers to Change Grades: An Awareness Guide
The Hidden Risks of Hiring Hackers to Change Grades: An Awareness Guide
russellpeter1995
 
Presentation Mehdi Monitorama 2022 Cancer and Monitoring
Presentation Mehdi Monitorama 2022 Cancer and MonitoringPresentation Mehdi Monitorama 2022 Cancer and Monitoring
Presentation Mehdi Monitorama 2022 Cancer and Monitoring
mdaoudi
 
Paper: World Game (s) Great Redesign.pdf
Paper: World Game (s) Great Redesign.pdfPaper: World Game (s) Great Redesign.pdf
Paper: World Game (s) Great Redesign.pdf
Steven McGee
 
Breaking Down the Latest Spectrum Internet Plans.pdf
Breaking Down the Latest Spectrum Internet Plans.pdfBreaking Down the Latest Spectrum Internet Plans.pdf
Breaking Down the Latest Spectrum Internet Plans.pdf
Internet Bundle Now
 
Java developer-friendly frontends: Build UIs without the JavaScript hassle- JCON
Java developer-friendly frontends: Build UIs without the JavaScript hassle- JCONJava developer-friendly frontends: Build UIs without the JavaScript hassle- JCON
Java developer-friendly frontends: Build UIs without the JavaScript hassle- JCON
Jago de Vreede
 
ProjectArtificial Intelligence Good or Evil.pptx
ProjectArtificial Intelligence Good or Evil.pptxProjectArtificial Intelligence Good or Evil.pptx
ProjectArtificial Intelligence Good or Evil.pptx
OlenaKotovska
 
Cloud-to-cloud Migration presentation.pptx
Cloud-to-cloud Migration presentation.pptxCloud-to-cloud Migration presentation.pptx
Cloud-to-cloud Migration presentation.pptx
marketing140789
 
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdfGiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
Giacomo Vacca
 
IoT PPT introduction to internet of things
IoT PPT introduction to internet of thingsIoT PPT introduction to internet of things
IoT PPT introduction to internet of things
VaishnaviPatil3995
 
DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...
DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...
DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...
werhkr1
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
plataforma virtual E learning y sus características.pdf
plataforma virtual E learning y sus características.pdfplataforma virtual E learning y sus características.pdf
plataforma virtual E learning y sus características.pdf
valdiviesovaleriamis
 
introduction to html and cssIntroHTML.ppt
introduction to html and cssIntroHTML.pptintroduction to html and cssIntroHTML.ppt
introduction to html and cssIntroHTML.ppt
SherifElGohary7
 
The Hidden Risks of Hiring Hackers to Change Grades: An Awareness Guide
The Hidden Risks of Hiring Hackers to Change Grades: An Awareness GuideThe Hidden Risks of Hiring Hackers to Change Grades: An Awareness Guide
The Hidden Risks of Hiring Hackers to Change Grades: An Awareness Guide
russellpeter1995
 
Presentation Mehdi Monitorama 2022 Cancer and Monitoring
Presentation Mehdi Monitorama 2022 Cancer and MonitoringPresentation Mehdi Monitorama 2022 Cancer and Monitoring
Presentation Mehdi Monitorama 2022 Cancer and Monitoring
mdaoudi
 
Paper: World Game (s) Great Redesign.pdf
Paper: World Game (s) Great Redesign.pdfPaper: World Game (s) Great Redesign.pdf
Paper: World Game (s) Great Redesign.pdf
Steven McGee
 
Breaking Down the Latest Spectrum Internet Plans.pdf
Breaking Down the Latest Spectrum Internet Plans.pdfBreaking Down the Latest Spectrum Internet Plans.pdf
Breaking Down the Latest Spectrum Internet Plans.pdf
Internet Bundle Now
 
Java developer-friendly frontends: Build UIs without the JavaScript hassle- JCON
Java developer-friendly frontends: Build UIs without the JavaScript hassle- JCONJava developer-friendly frontends: Build UIs without the JavaScript hassle- JCON
Java developer-friendly frontends: Build UIs without the JavaScript hassle- JCON
Jago de Vreede
 
ProjectArtificial Intelligence Good or Evil.pptx
ProjectArtificial Intelligence Good or Evil.pptxProjectArtificial Intelligence Good or Evil.pptx
ProjectArtificial Intelligence Good or Evil.pptx
OlenaKotovska
 
Cloud-to-cloud Migration presentation.pptx
Cloud-to-cloud Migration presentation.pptxCloud-to-cloud Migration presentation.pptx
Cloud-to-cloud Migration presentation.pptx
marketing140789
 
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdfGiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
Giacomo Vacca
 
IoT PPT introduction to internet of things
IoT PPT introduction to internet of thingsIoT PPT introduction to internet of things
IoT PPT introduction to internet of things
VaishnaviPatil3995
 
DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...
DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...
DEF CON 25 - Whitney-Merrill-and-Terrell-McSweeny-Tick-Tick-Boom-Tech-and-the...
werhkr1
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 

Puppet Camp Germany 2020 - Puppet Control Repo and GIT

  • 1. Puppet Control Repository and GIT Martin Alfke - example42 GmbH
  • 2. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 2 Puppet Trainer since 2011 CEO & Co-Founder example42 GmbH tuxmea (Twitter, GitHub, Slack) About me
  • 3. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 3 Puppet Control-Repo Simple GIT workflow GIT workflow with staging branch GIT Flow Topics covered:
  • 4. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Puppet Control Repo 4 Image: tatlin
  • 5. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Puppet Control Repo 5 One repository for your own code Separation of upstream modules (Puppetfile or git submodules) Branches will become Puppet environments Either empty repo or example42 Puppet System Infrastructure Construction Kit (PSICK on GitHub). Image: tatlin
  • 6. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Puppet Control Repo 6 Image: tatlin App-DEV development testing production
  • 7. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Puppet Control Repo 7 Image: tatlin App-DEV development testing production Puppet DEV production
  • 8. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Puppet Control Repo 8 Image: tatlin App-DEV development testing production Puppet DEV production production production Application Stages Puppet Environments
  • 9. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Simple GIT workflow 9 Image: tatlin
  • 10. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Simple GIT workflow 10 One long living protected branch (production) Differences between stages are in Hiera. Activating features using feature flags. Image: tatlin
  • 11. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Simple GIT workflow 11 All changes come via feature branches Prevent special chars like +, -, %, ... these environments will not get deployed. Image: tatlin
  • 12. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 12 Simple GIT workflow
  • 13. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Simple GIT workflow 13 Pro: Easy to learn, easy to handle Con: No real staging of code, code changes affect all stages (when activated) Image: tatlin
  • 14. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT workflow with staging branch 14 Image: tatlin
  • 15. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT workflow with staging branch 15 Network separation between development and production? Separate GIT servers and Puppet Masters? Image: tatlin
  • 16. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT workflow with staging branch 16 All code must be developed in development zone No code may be added in production, except via merge requests. CI/CD Systems synchronizes code base using a staging branch Image: tatlin
  • 17. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 17 GIT workflow with staging branch
  • 18. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT workflow with staging branch 18 Pro: Security separation is taken care on Con: Needs automatic merging and staging, no manual merges. Image: tatlin
  • 19. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 19 Image: tatlin
  • 20. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 20 Image: tatlin ITIL processes? Strict code separation between development and production required? Hot fixes and Features must be possible?
  • 21. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 21 Image: tatlin No merges between branches! Each branch is an individual development. Cherry-Pick into next stage.
  • 22. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 22 GIT Flow
  • 23. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 23 GIT Flow
  • 24. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 24 Image: tatlin Each feature branch may consist of a single commit only. Use git commit --amend or git squash
  • 25. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 25
  • 26. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 26 Image: tatlin GIT Flow Requires knowledge on - squashing - rebasing - solving merge conflicts
  • 27. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH 27 GIT Flow
  • 28. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH GIT Flow 28 Image: tatlin Pro: Branch specific development possible Con: needs deeper understanding on GIT more work to bring changes into desired branch
  • 29. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Summary 29 Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains. - Steve Jobs
  • 30. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Conclusion 30 Image: tatlin
  • 31. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Conclusion 31 Start simple and expand when learning. - K.I.S.S. Automate everything, also your code deployment! GIT has a learning curve. Take care on that! Learn GIT! Never adopt complex workflows if you don’t need them! “If you use all your smartness to write the code, you have none left to debug it.” (David Schmidt)
  • 32. Puppet Control Repository and GIT - PuppetCamp Europe 2020 - Martin Alfke © example42 GmbH Conclusion 2 32 Stop social distancing! We need physical distance! Take care on people who need help!
  • 33. Puppet Control Repository and GIT Martin Alfke - example42 GmbH
  翻译: