SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
www.immobilienscout24.de



Configuration Management
and Linux Packages

OSDC Nürnberg | 17.04.2013 | Schlomo Schapiro | @schlomoschapiro
Systemarchitekt, Open Source Evangelist




                           License: http://creativecommons.org/licenses/by-nc-nd/3.0/
www.ImmobilienScout24.de




  >2 billion PI per month
  2 data center with ~1400 VM
  total of ~600 employees
   ~30 crossfunctional IT teams
   ~160 in IT
  15 years in business
  part of Deutsche Telekom




Slide 2 | Config Management & Linux Packages | @schlomoschapiro
Why am I standing here?

  My Puppet and Chef to only half the job blog posting (2012-07)
  Packages Doing Too Much? blog post on SysAdvent (2012-12)
  Talking to lots of people at lots of conferences




   One Tool To Rule Them All




Slide 3 | Config Management & Linux Packages | @schlomoschapiro
Business
                                             Decision
                                              To go
                                               Live




    All             Build
                                                           Scale Out
    Humans          Config
                                                           Data Centers
    are on the      Deploy               Automation
    Same Side       Test
                    Systems-
                    Management            through
                                             packages


Slide 4 | Config Management & Linux Packages | @schlomoschapiro
DevOps
Slide 5 | Config Management & Linux Packages | @schlomoschapiro
Never change a running system

                                            Run the changing system
  Continous Delivery
                                             Deploy When Ready
You Build It – You Run It!
                                          Fail Fast – Fail Early



 Run With The Pack – The Pack Will Protect You




Slide 6 | Config Management & Linux Packages | @schlomoschapiro
Configuration
    Build                                                         DEV


  Application                      YUM                                  QA
    Build
                                  Repos
Infrastructure                                                               PRO
     Build




                  Interface

Slide 7 | Config Management & Linux Packages | @schlomoschapiro
“Any relevant file should be either
              deployed via a package
                                      or
         completely managed by an
  application that is thus deployed.”



Slide 8 | Config Management & Linux Packages | @schlomoschapiro
„Every package must be verifyable –
  stay away from package scripts.“

      “Reducing the config package
       reduces the deployment risk.”




Slide 9 | Config Management & Linux Packages | @schlomoschapiro
Config
                                 SVN

Infrastructure
      as                                    post-commit
                                            → YUM repos
     Code



 Slide 10 | Config Management & Linux Packages | @schlomoschapiro
Configuration over Convention



     TSTWEB05
  Location &                                              Instance
  Environment

                          Function Group



Slide 11 | Config Management & Linux Packages | @schlomoschapiro
Big Picture – Static Structure
config
├── host                                                          Post-commit hook creates
│   └── tstweb02                                                  is24-config-$hostname RPM
│                                                                 ●
                                                                    svn export
├── loc                                svn ci
│   └── tst                                      Config           ●
                                                                    patch VARIABLES
                                                                    fill in metadata
                                                  SVN
                                                                  ●
│        ├── VARIABLES                 svn co
│        │    ├── RPM_REQUIRES
│        │    ├── RPM_PROVIDES
│        │    ├── DB_HOST
│        │    └── DB_USER
│        └── etc                                              YUM          IS24 software
│             └── is24
│                 ├── web.properties                        Repository    Automated RPM
                                                                              creation
│                 └── db.properties
├── typ
│     └── web          db.host=@@@DB_HOST@@@
│                      db.user=@@@DB_USER@@@       is24-config-tstweb01-1.0-$rev.rpm:
├── loctyp             db.port=3306                /etc/is24/system.properties
│   └── tstweb
│        └── etc                                   /etc/is24/db.properties
│             └── is24                             /etc/is24/web.properties
│                 └── web.properties
└── all
    ├── VARIABLES
    │    └── SYSLOG_HOST
    └── etc
         └── is24
                        loghost=log.domain.com      [root@tstweb01 ~]# yum update
              └── system.properties


   Slide 12 | Config Management & Linux Packages | @schlomoschapiro
Static Structure – Pros and Cons
  Variables follow same               config
                                      ├── host                                                         Post-commit hook creates

  structure as config data
                                      │   └── tstweb02                                                 is24-config-$hostname RPM
                                      │                                                                ●
                                                                                                         svn export
                                      ├── loc                                svn ci
                                      │   └── tst                                     Config           ●
                                                                                                         patch VARIABLES
                                                                                                         fill in metadata
                                                                                       SVN
                                                                                                       ●
                                      │        ├── VARIABLES

  Only one tool (SVN) needed
                                                                            svn co
                                      │        │   ├── RPM_REQUIRES
                                      │        │   ├── RPM_PROVIDES
                                      │        │   ├── DB_HOST
                                      │        │   └── DB_USER

  GUI talks only to SVN               │
                                      │
                                      │
                                               └── etc
                                                   └── is24
                                                       ├── web.properties
                                                                                                    YUM
                                                                                                  Repository
                                                                                                                IS24 software
                                                                                                               Automated RPM
                                                                                                                   creation
                                      │                └── db.properties

  Versioning and change               ├── typ
                                      │
                                      │
                                            └── web         db.host=@@@DB_HOST@@@
                                                            db.user=@@@DB_USER@@@       is24-config-tstweb01-1.0-$rev.rpm:
  tracking for variables
                                      ├── loctyp            db.port=3306                /etc/is24/system.properties
                                      │   └── tstweb
                                      │        └── etc                                  /etc/is24/db.properties
                                      │            └── is24                             /etc/is24/web.properties

  Variables and config files
                                      │                └── web.properties
                                      └── all
                                          ├── VARIABLES

  change together (atomic)
                                          │    └── SYSLOG_HOST
                                          └── etc
                                               └── is24
                                                             loghost=log.domain.com      [root@tstweb01 ~]# yum update

  → easy rollback
                                                   └── system.properties




  Is this simple overlaying structure sufficient?

                                                                                      KIS
   Simplify the world so that it is good enough!

                                                                                                        S!
Slide 13 | Config Management & Linux Packages | @schlomoschapiro
Example: Apache HTTPD

httpd RPM

   /etc/httpd/conf/httpd.conf


   /etc/sysconfig/httpd



Design Goals:
   Use and extend upstream httpd RPM
   Configure MPM and service user per application
   IS24 standard configuration everywhere




Slide 14 | Config Management & Linux Packages | @schlomoschapiro
Example: is24-httpd RPM

Requires: httpd
Requires(Pre): httpd
%post
if ! echo '# IS24 HTTPD conf framework. Read IS24_README!
# This file is managed by %{name}­%{version}.%{release}
# Put your stuff in /etc/conf/*/is24*.conf files!
ServerRoot "/etc/httpd"
Include conf/basic/is24*.conf
Include conf/main/is24*.conf
Include conf/other/is24*.conf
' >/etc/httpd/conf/httpd.conf ; then
    logger ­p user.err ­s ­t %name ­­ "ERROR: …"
fi




Slide 15 | Config Management & Linux Packages | @schlomoschapiro
Example: is24-httpd RPM
%post (continued)
if ! echo '# HTTPD options can be configured in
# additional /etc/httpd/conf/env/*.sh files
# This file is managed by %{name}­%{version}.%{release}
# Please add extra options to the OPTIONS Bash Array
shopt ­s nullglob
HTTPD=/usr/sbin/httpd.worker
for f in /etc/httpd/conf/env/*.sh ; do
    source $f
done
OPTIONS="${OPTIONS[*]}" # flatten array
' >/etc/sysconfig/httpd ; then
    logger ­p user.err ­s ­t %name ­­ "ERROR: ..."
fi

...




Slide 16 | Config Management & Linux Packages | @schlomoschapiro
Example: How To Upgrade Java Packages
Requires:
is24-jdk-6
is24-jdk-7
                                 Req
                is24-jdk-7                is24-jdk-6

                                                    /etc/profile.d/java.sh

                       Req                        Req



 java-1.7.0-oracle-devel                    java-1.6.0-sun-devel




Slide 17 | Config Management & Linux Packages | @schlomoschapiro
Separation of Concerns

    Keep                                                      Use
     It                                                      What
   Simple                                                      Is
     &                                                      Already
   Stupid                                                    There

               The Tool Is You!


Slide 18 | Config Management & Linux Packages | @schlomoschapiro
http://yadt-project.org             and    http://github.com/YADT

http://github.com/ImmobilienScout24

http://bit.ly/is24techjobs



  Slide 19 | Config Management & Linux Packages | @schlomoschapiro
Thank you very much!
Please contact me for further
questions and discussions.
Kontakt:
Immobilien Scout GmbH   Fon:   +49 30 243 01-1229
Andreasstraße 10        Email: schlomo.schapiro@immobilienscout24.de
10243 Berlin            URL: www.immobilienscout24.de




Slide 20 | Config Management & Linux Packages | @schlomoschapiro
Photo URLs

Rowboot: http://www.photoreview.com.au/features/profiles/work-hard-get-lucky.aspx
Holding hands: http://www.thechefalliance.com/Top-Chef-Services
Robots: http://www.t-tek.com/announcements/conventional-palletizer-or-robot

Everything else is from OpenClipArt.org or custom made.




Slide 21 | Practical DevOps | @schlomoschapiro

Más contenido relacionado

Más de Schlomo Schapiro

Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo SchapiroWant Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Schlomo Schapiro
 
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo SchapiroThe Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
Schlomo Schapiro
 
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
Schlomo Schapiro
 
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
Schlomo Schapiro
 
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration StrategyOSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
Schlomo Schapiro
 
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven InfrastructureSE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
Schlomo Schapiro
 

Más de Schlomo Schapiro (20)

The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
 
The Role of GitOps in IT-Strategy - November 2021 - Schlomo Schapiro - Contin...
The Role of GitOps in IT-Strategy - November 2021 - Schlomo Schapiro - Contin...The Role of GitOps in IT-Strategy - November 2021 - Schlomo Schapiro - Contin...
The Role of GitOps in IT-Strategy - November 2021 - Schlomo Schapiro - Contin...
 
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
 
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo SchapiroThe Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
The Role of GitOps in IT Strategy - June 2021 - Schlomo Schapiro
 
The GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
The GitOps Journey - GitOpsCon EU 2021 - Schlomo SchapiroThe GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
The GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
 
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo SchapiroWant Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
 
Automated Governance - Continous Lifecycle 2019 - Schlomo Schapiro
Automated Governance - Continous Lifecycle 2019 - Schlomo SchapiroAutomated Governance - Continous Lifecycle 2019 - Schlomo Schapiro
Automated Governance - Continous Lifecycle 2019 - Schlomo Schapiro
 
Compliant by Default - Digitaler Wandel - 14.08.2019 - Schlomo Schapiro
Compliant by Default - Digitaler Wandel - 14.08.2019 - Schlomo SchapiroCompliant by Default - Digitaler Wandel - 14.08.2019 - Schlomo Schapiro
Compliant by Default - Digitaler Wandel - 14.08.2019 - Schlomo Schapiro
 
DevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
DevOps ist normal - DevOps Essentials 2019 - Schlomo SchapiroDevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
DevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
 
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo SchapiroThe Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
 
Open Source Contribution Policy at DB Systel - Schlomo Schapiro - AK Open Sou...
Open Source Contribution Policy at DB Systel - Schlomo Schapiro - AK Open Sou...Open Source Contribution Policy at DB Systel - Schlomo Schapiro - AK Open Sou...
Open Source Contribution Policy at DB Systel - Schlomo Schapiro - AK Open Sou...
 
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
 
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
 
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...Kubernetes  - Shifting the mindset from servers to containers - microxchg 201...
Kubernetes - Shifting the mindset from servers to containers - microxchg 201...
 
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo SchapiroRoot for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
 
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital AgeGUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
 
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
 
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration StrategyOSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
 
WARNING is a waste of my time
WARNING is a waste of my timeWARNING is a waste of my time
WARNING is a waste of my time
 
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven InfrastructureSE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"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 ...
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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 ...
 
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
 
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...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 

OSDC 2013 - Configuration Management and Linux Packages

  • 1. www.immobilienscout24.de Configuration Management and Linux Packages OSDC Nürnberg | 17.04.2013 | Schlomo Schapiro | @schlomoschapiro Systemarchitekt, Open Source Evangelist License: http://creativecommons.org/licenses/by-nc-nd/3.0/
  • 2. www.ImmobilienScout24.de >2 billion PI per month 2 data center with ~1400 VM total of ~600 employees  ~30 crossfunctional IT teams  ~160 in IT 15 years in business part of Deutsche Telekom Slide 2 | Config Management & Linux Packages | @schlomoschapiro
  • 3. Why am I standing here? My Puppet and Chef to only half the job blog posting (2012-07) Packages Doing Too Much? blog post on SysAdvent (2012-12) Talking to lots of people at lots of conferences One Tool To Rule Them All Slide 3 | Config Management & Linux Packages | @schlomoschapiro
  • 4. Business Decision To go Live All Build Scale Out Humans Config Data Centers are on the Deploy Automation Same Side Test Systems- Management through packages Slide 4 | Config Management & Linux Packages | @schlomoschapiro
  • 5. DevOps Slide 5 | Config Management & Linux Packages | @schlomoschapiro
  • 6. Never change a running system Run the changing system Continous Delivery Deploy When Ready You Build It – You Run It! Fail Fast – Fail Early Run With The Pack – The Pack Will Protect You Slide 6 | Config Management & Linux Packages | @schlomoschapiro
  • 7. Configuration Build DEV Application YUM QA Build Repos Infrastructure PRO Build Interface Slide 7 | Config Management & Linux Packages | @schlomoschapiro
  • 8. “Any relevant file should be either deployed via a package or completely managed by an application that is thus deployed.” Slide 8 | Config Management & Linux Packages | @schlomoschapiro
  • 9. „Every package must be verifyable – stay away from package scripts.“ “Reducing the config package reduces the deployment risk.” Slide 9 | Config Management & Linux Packages | @schlomoschapiro
  • 10. Config SVN Infrastructure as post-commit → YUM repos Code Slide 10 | Config Management & Linux Packages | @schlomoschapiro
  • 11. Configuration over Convention TSTWEB05 Location & Instance Environment Function Group Slide 11 | Config Management & Linux Packages | @schlomoschapiro
  • 12. Big Picture – Static Structure config ├── host Post-commit hook creates │ └── tstweb02 is24-config-$hostname RPM │ ● svn export ├── loc svn ci │ └── tst Config ● patch VARIABLES fill in metadata SVN ● │ ├── VARIABLES svn co │ │ ├── RPM_REQUIRES │ │ ├── RPM_PROVIDES │ │ ├── DB_HOST │ │ └── DB_USER │ └── etc YUM IS24 software │ └── is24 │ ├── web.properties Repository Automated RPM creation │ └── db.properties ├── typ │ └── web db.host=@@@DB_HOST@@@ │ db.user=@@@DB_USER@@@ is24-config-tstweb01-1.0-$rev.rpm: ├── loctyp db.port=3306 /etc/is24/system.properties │ └── tstweb │ └── etc /etc/is24/db.properties │ └── is24 /etc/is24/web.properties │ └── web.properties └── all ├── VARIABLES │ └── SYSLOG_HOST └── etc └── is24 loghost=log.domain.com [root@tstweb01 ~]# yum update └── system.properties Slide 12 | Config Management & Linux Packages | @schlomoschapiro
  • 13. Static Structure – Pros and Cons Variables follow same config ├── host Post-commit hook creates structure as config data │ └── tstweb02 is24-config-$hostname RPM │ ● svn export ├── loc svn ci │ └── tst Config ● patch VARIABLES fill in metadata SVN ● │ ├── VARIABLES Only one tool (SVN) needed svn co │ │ ├── RPM_REQUIRES │ │ ├── RPM_PROVIDES │ │ ├── DB_HOST │ │ └── DB_USER GUI talks only to SVN │ │ │ └── etc └── is24 ├── web.properties YUM Repository IS24 software Automated RPM creation │ └── db.properties Versioning and change ├── typ │ │ └── web db.host=@@@DB_HOST@@@ db.user=@@@DB_USER@@@ is24-config-tstweb01-1.0-$rev.rpm: tracking for variables ├── loctyp db.port=3306 /etc/is24/system.properties │ └── tstweb │ └── etc /etc/is24/db.properties │ └── is24 /etc/is24/web.properties Variables and config files │ └── web.properties └── all ├── VARIABLES change together (atomic) │ └── SYSLOG_HOST └── etc └── is24 loghost=log.domain.com [root@tstweb01 ~]# yum update → easy rollback └── system.properties Is this simple overlaying structure sufficient? KIS  Simplify the world so that it is good enough! S! Slide 13 | Config Management & Linux Packages | @schlomoschapiro
  • 14. Example: Apache HTTPD httpd RPM /etc/httpd/conf/httpd.conf /etc/sysconfig/httpd Design Goals: Use and extend upstream httpd RPM Configure MPM and service user per application IS24 standard configuration everywhere Slide 14 | Config Management & Linux Packages | @schlomoschapiro
  • 15. Example: is24-httpd RPM Requires: httpd Requires(Pre): httpd %post if ! echo '# IS24 HTTPD conf framework. Read IS24_README! # This file is managed by %{name}­%{version}.%{release} # Put your stuff in /etc/conf/*/is24*.conf files! ServerRoot "/etc/httpd" Include conf/basic/is24*.conf Include conf/main/is24*.conf Include conf/other/is24*.conf ' >/etc/httpd/conf/httpd.conf ; then     logger ­p user.err ­s ­t %name ­­ "ERROR: …" fi Slide 15 | Config Management & Linux Packages | @schlomoschapiro
  • 16. Example: is24-httpd RPM %post (continued) if ! echo '# HTTPD options can be configured in # additional /etc/httpd/conf/env/*.sh files # This file is managed by %{name}­%{version}.%{release} # Please add extra options to the OPTIONS Bash Array shopt ­s nullglob HTTPD=/usr/sbin/httpd.worker for f in /etc/httpd/conf/env/*.sh ; do     source $f done OPTIONS="${OPTIONS[*]}" # flatten array ' >/etc/sysconfig/httpd ; then     logger ­p user.err ­s ­t %name ­­ "ERROR: ..." fi ... Slide 16 | Config Management & Linux Packages | @schlomoschapiro
  • 17. Example: How To Upgrade Java Packages Requires: is24-jdk-6 is24-jdk-7 Req is24-jdk-7 is24-jdk-6 /etc/profile.d/java.sh Req Req java-1.7.0-oracle-devel java-1.6.0-sun-devel Slide 17 | Config Management & Linux Packages | @schlomoschapiro
  • 18. Separation of Concerns Keep Use It What Simple Is & Already Stupid There The Tool Is You! Slide 18 | Config Management & Linux Packages | @schlomoschapiro
  • 19. http://yadt-project.org and http://github.com/YADT http://github.com/ImmobilienScout24 http://bit.ly/is24techjobs Slide 19 | Config Management & Linux Packages | @schlomoschapiro
  • 20. Thank you very much! Please contact me for further questions and discussions. Kontakt: Immobilien Scout GmbH Fon: +49 30 243 01-1229 Andreasstraße 10 Email: schlomo.schapiro@immobilienscout24.de 10243 Berlin URL: www.immobilienscout24.de Slide 20 | Config Management & Linux Packages | @schlomoschapiro
  • 21. Photo URLs Rowboot: http://www.photoreview.com.au/features/profiles/work-hard-get-lucky.aspx Holding hands: http://www.thechefalliance.com/Top-Chef-Services Robots: http://www.t-tek.com/announcements/conventional-palletizer-or-robot Everything else is from OpenClipArt.org or custom made. Slide 21 | Practical DevOps | @schlomoschapiro