SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Kokki: Configuration
                  Management Framework
                           It means “cook” in Finnish

                                Samuel Stauffer


Thursday, March 17, 2011
What is it?
                    Infrastructure automation → configuration management
                    Part of provisioning
                    Library and simple command line tool
                           currently no client/server component
                           can use GitHub in place of client/server
                    Alternative to Puppet/Chef/CFengine
Thursday, March 17, 2011
Why not Puppet, Chef, or ...

                    Python
                    It’s a framework/library rather than a complete solution
                    Different needs



Thursday, March 17, 2011
What can I use it for?
                    Creating a template for configuring servers
                           Great for cloud based servers (EC2)
                           Mix in some ‘userscript’ and you have a new web instances in less
                           than 5 minutes.
                    Avoid having to log into servers except when absolutely necessary
                           Configuring servers by hand is tedious, not scalable, and more
                           prone to mistakes. (fine for 1 server, not for 10)

Thursday, March 17, 2011
Overview
                    Environment: execution environment
                           Resource: describes a file, service, package, etc..
                               Provider: knows how to execute a resource
                    Kitchen: container for cookbooks
                           Cookbook: container for recipes and libraries
                               Recipe: group of resource definitions
                               Library: utility methods, resources, and providers
Thursday, March 17, 2011
Environment

                    An environment holds and executes resources and actions.
                    config: attribute dictionary of configuration values
                    system: provides access to system information
                           machine architecture, os (linux, darwin, ...), flavor
                           (redhat, ubuntu, debian, ...)


Thursday, March 17, 2011
Resource
                    A resource is a description of a small part of a configuration
                    Examples: File, Mount, Package, Service, ...

                    File(“/etc/nginx/nginx.conf”,
                         owner = “root”,
                         mode = 0644,
                         content = Template(“nginx/nginx.conf.j2”),
                         notifies = [
                             (“restart” env.resources[“Service”][“nginx”]),
                           ])



Thursday, March 17, 2011
Provider
                    A provider is a concrete implementation of a resource.
                    Responsible for checking current state of the resource and
                    taking any steps necessary to make resource match. (e.g.
                    compare the contents of a file and overwrite if it doesn’t
                    match)
                    Each platform can have a provider (e.g. one provider knows
                    how to install packages using ‘apt’ on Ubuntu)

Thursday, March 17, 2011
Kitchen

                    A Kitchen:
                           is a subclass of an Environment
                           provides a higher level of abstraction for describing roles
                           and resources
                           contains cookbooks which contain recipes and libraries


Thursday, March 17, 2011
Cookbook
                    A cookbook groups recipes, libraries, and default configuration as a
                    unit. For instance a package like “apache2” could have a cookbook.
                    Each cookbook is required to contain a file metadata.py which holds a
                    dictionary of all configuration values and their defaults.
                    Subdirectories of a cookbook include: recipes, libraries, templates,
                    and files.
                    Multiple recipes can be used for different purposes: apache2.prefork,
                    apache2.worker, etc..

Thursday, March 17, 2011
Recipe
                    A recipe is a “script” that defines resources.
                    Each recipe receives a global ‘env’ which is the current
                    Environment/Kitchen.
                    A cookbook can have a ‘default.py’ recipe which is the one
                    used if no recipe specified.
                           env.include_recipe(“memcached”)
                           vs env.include_recipe(“munin.node”)
Thursday, March 17, 2011
Demo


                    http://github.com/samuel/kokki-pywebsf-demo




Thursday, March 17, 2011
Current Limitations

                    Currently only supports Debian/Ubuntu
                           easy to support other platforms, just isn’t done
                    No client/server
                    Small userbase
                    No documentations

Thursday, March 17, 2011
Roadmap

                    Better documentation
                    Client/server
                    Cloud tools (automate EC2 instances)
                    More platforms (though probably not Windows)
                    Pick a different theme? (enough with the cooking/chefs)

Thursday, March 17, 2011
Thanks! Questions?

                    http://github.com/samuel/kokki
                    http://github.com/samuel/kokki-pywebsf-demo
                    https://convore.com/kokki/
                    samuel@descolada.com


Thursday, March 17, 2011

Weitere ähnliche Inhalte

Was ist angesagt?

Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Anthony Dahanne
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users GroupTodd Fritz
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityBob Killen
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...Animesh Singh
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerBob Killen
 
Hadoop Cluster on Docker Containers
Hadoop Cluster on Docker ContainersHadoop Cluster on Docker Containers
Hadoop Cluster on Docker Containerspranav_joshi
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayLuciano Resende
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...All Things Open
 
Finding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupFinding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupDaniel Krook
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsLuciano Resende
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker ImagesBrian DeHamer
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetesElad Hirsch
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Arun Gupta
 
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWSConfiguring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWSPuppet
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityLudovic Piot
 
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Daniel Krook
 
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Initcron Systems Private Limited
 

Was ist angesagt? (20)

Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !Get you Java application ready for Kubernetes !
Get you Java application ready for Kubernetes !
 
2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group2014, April 15, Atlanta Java Users Group
2014, April 15, Atlanta Java Users Group
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
 
How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...How to build an event-driven, polyglot serverless microservices framework on ...
How to build an event-driven, polyglot serverless microservices framework on ...
 
Pluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and DockerPluggable Infrastructure with CI/CD and Docker
Pluggable Infrastructure with CI/CD and Docker
 
Hadoop Cluster on Docker Containers
Hadoop Cluster on Docker ContainersHadoop Cluster on Docker Containers
Hadoop Cluster on Docker Containers
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...Containers in depth – Understanding how containers work to better work with c...
Containers in depth – Understanding how containers work to better work with c...
 
Finding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User GroupFinding and Organizing a Great Cloud Foundry User Group
Finding and Organizing a Great Cloud Foundry User Group
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernels
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker Images
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWSConfiguring Highly Scalable Compile Masters, Vasco Cardoso, AWS
Configuring Highly Scalable Compile Masters, Vasco Cardoso, AWS
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
 
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
 

Andere mochten auch

The life of an entrepreneur - by me
The life of an entrepreneur - by meThe life of an entrepreneur - by me
The life of an entrepreneur - by meJasper Goyvaerts
 
Bcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayoBcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayoDafne Patruno
 
The solar system of ainara
The solar system of ainaraThe solar system of ainara
The solar system of ainarafirstbilingual1
 
Am 6 the marketing mix
Am 6 the marketing mixAm 6 the marketing mix
Am 6 the marketing mixalka1522
 
Employers for Better Health
Employers for Better HealthEmployers for Better Health
Employers for Better HealthOttawa Kent
 
How PowerDirect Delivers Results
How PowerDirect Delivers ResultsHow PowerDirect Delivers Results
How PowerDirect Delivers Resultsbborneman
 
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»Yaroslav Birzool
 
Brick Streets in Homer Illinois
Brick Streets in Homer IllinoisBrick Streets in Homer Illinois
Brick Streets in Homer IllinoisRaymond Cunningham
 
Matthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the foxMatthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the foxtherussianbear
 
Pedro López de alda
Pedro López de aldaPedro López de alda
Pedro López de aldaStudent
 
2payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp012payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp01Robbart Prem
 
Lecture failure criteria
Lecture   failure criteriaLecture   failure criteria
Lecture failure criteriaHamdani Nurdin
 
Cloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT ProjectCloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT ProjectTomo Popovic
 

Andere mochten auch (20)

The life of an entrepreneur - by me
The life of an entrepreneur - by meThe life of an entrepreneur - by me
The life of an entrepreneur - by me
 
Bcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayoBcn Cool Hunter 9 mayo
Bcn Cool Hunter 9 mayo
 
Education 3.0
Education 3.0Education 3.0
Education 3.0
 
The solar system of ainara
The solar system of ainaraThe solar system of ainara
The solar system of ainara
 
Am 6 the marketing mix
Am 6 the marketing mixAm 6 the marketing mix
Am 6 the marketing mix
 
Employers for Better Health
Employers for Better HealthEmployers for Better Health
Employers for Better Health
 
How PowerDirect Delivers Results
How PowerDirect Delivers ResultsHow PowerDirect Delivers Results
How PowerDirect Delivers Results
 
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
доклад «о процессе работы в Ux depot на примере кейса i pogoda.ru»
 
Brick Streets in Homer Illinois
Brick Streets in Homer IllinoisBrick Streets in Homer Illinois
Brick Streets in Homer Illinois
 
Appril #appdesign
Appril #appdesignAppril #appdesign
Appril #appdesign
 
Matthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the foxMatthew millington is the fox and you can't catch the fox
Matthew millington is the fox and you can't catch the fox
 
Otoño y sus flores
Otoño y sus floresOtoño y sus flores
Otoño y sus flores
 
Pedro López de alda
Pedro López de aldaPedro López de alda
Pedro López de alda
 
2payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp012payementofbonus act-101120123359-phpapp01
2payementofbonus act-101120123359-phpapp01
 
Noč v knjižnici
Noč v knjižniciNoč v knjižnici
Noč v knjižnici
 
Lecture failure criteria
Lecture   failure criteriaLecture   failure criteria
Lecture failure criteria
 
Al mu min
Al mu minAl mu min
Al mu min
 
Cloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT ProjectCloud Services for the BIO-ICT Project
Cloud Services for the BIO-ICT Project
 
9fms pp18
9fms pp189fms pp18
9fms pp18
 
Embedded PowerPoint
Embedded PowerPointEmbedded PowerPoint
Embedded PowerPoint
 

Ähnlich wie Kokki: Configuration Management Framework

Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009marcelesser
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_awsKasper Nissen
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to KubernetesPaul Czarkowski
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentationCorey Purcell
 
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...irbull
 
Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshopjtimberman
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationHoward Greenberg
 
Modern web dev_taxonomy
Modern web dev_taxonomyModern web dev_taxonomy
Modern web dev_taxonomykevin_donovan
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngineGreen Egg Media
 
Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Acquia
 
Do's and Do not's about p2
Do's and Do not's about p2Do's and Do not's about p2
Do's and Do not's about p2Pascal Rapicault
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Henri Gomez
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with PuppetAlessandro Franceschi
 
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 Build High-Performance, Scalable, Distributed Applications with Stacks of Co... Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...Yandex
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018Viresh Doshi
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - IntroductionLuca D'Onofrio
 
Chef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS NewbiesChef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS NewbiesMamun Rashid, CCDH
 
CONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKERCONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKERStfalcon Meetups
 

Ähnlich wie Kokki: Configuration Management Framework (20)

Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
 
Container orchestration on_aws
Container orchestration on_awsContainer orchestration on_aws
Container orchestration on_aws
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
 
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
 
Velocity2011 chef-workshop
Velocity2011 chef-workshopVelocity2011 chef-workshop
Velocity2011 chef-workshop
 
Webinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting ReplicationWebinar: From Frustration to Fascination: Dissecting Replication
Webinar: From Frustration to Fascination: Dissecting Replication
 
Modern web dev_taxonomy
Modern web dev_taxonomyModern web dev_taxonomy
Modern web dev_taxonomy
 
Deployment with ExpressionEngine
Deployment with ExpressionEngineDeployment with ExpressionEngine
Deployment with ExpressionEngine
 
Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Updating Your Website to Drupal 7
Updating Your Website to Drupal 7
 
Do's and Do not's about p2
Do's and Do not's about p2Do's and Do not's about p2
Do's and Do not's about p2
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
Developing IT infrastructures with Puppet
Developing IT infrastructures with PuppetDeveloping IT infrastructures with Puppet
Developing IT infrastructures with Puppet
 
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 Build High-Performance, Scalable, Distributed Applications with Stacks of Co... Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
Build High-Performance, Scalable, Distributed Applications with Stacks of Co...
 
Groke
GrokeGroke
Groke
 
Ansible top 10 - 2018
Ansible top 10 -  2018Ansible top 10 -  2018
Ansible top 10 - 2018
 
Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
 
Chef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS NewbiesChef Tutorial for DEVOPS Newbies
Chef Tutorial for DEVOPS Newbies
 
CONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKERCONTINUOUS INTEGRATION && DOCKER
CONTINUOUS INTEGRATION && DOCKER
 
Puppet_training
Puppet_trainingPuppet_training
Puppet_training
 

Kürzlich hochgeladen

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Kürzlich hochgeladen (20)

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Kokki: Configuration Management Framework

  • 1. Kokki: Configuration Management Framework It means “cook” in Finnish Samuel Stauffer Thursday, March 17, 2011
  • 2. What is it? Infrastructure automation → configuration management Part of provisioning Library and simple command line tool currently no client/server component can use GitHub in place of client/server Alternative to Puppet/Chef/CFengine Thursday, March 17, 2011
  • 3. Why not Puppet, Chef, or ... Python It’s a framework/library rather than a complete solution Different needs Thursday, March 17, 2011
  • 4. What can I use it for? Creating a template for configuring servers Great for cloud based servers (EC2) Mix in some ‘userscript’ and you have a new web instances in less than 5 minutes. Avoid having to log into servers except when absolutely necessary Configuring servers by hand is tedious, not scalable, and more prone to mistakes. (fine for 1 server, not for 10) Thursday, March 17, 2011
  • 5. Overview Environment: execution environment Resource: describes a file, service, package, etc.. Provider: knows how to execute a resource Kitchen: container for cookbooks Cookbook: container for recipes and libraries Recipe: group of resource definitions Library: utility methods, resources, and providers Thursday, March 17, 2011
  • 6. Environment An environment holds and executes resources and actions. config: attribute dictionary of configuration values system: provides access to system information machine architecture, os (linux, darwin, ...), flavor (redhat, ubuntu, debian, ...) Thursday, March 17, 2011
  • 7. Resource A resource is a description of a small part of a configuration Examples: File, Mount, Package, Service, ... File(“/etc/nginx/nginx.conf”, owner = “root”, mode = 0644, content = Template(“nginx/nginx.conf.j2”), notifies = [ (“restart” env.resources[“Service”][“nginx”]), ]) Thursday, March 17, 2011
  • 8. Provider A provider is a concrete implementation of a resource. Responsible for checking current state of the resource and taking any steps necessary to make resource match. (e.g. compare the contents of a file and overwrite if it doesn’t match) Each platform can have a provider (e.g. one provider knows how to install packages using ‘apt’ on Ubuntu) Thursday, March 17, 2011
  • 9. Kitchen A Kitchen: is a subclass of an Environment provides a higher level of abstraction for describing roles and resources contains cookbooks which contain recipes and libraries Thursday, March 17, 2011
  • 10. Cookbook A cookbook groups recipes, libraries, and default configuration as a unit. For instance a package like “apache2” could have a cookbook. Each cookbook is required to contain a file metadata.py which holds a dictionary of all configuration values and their defaults. Subdirectories of a cookbook include: recipes, libraries, templates, and files. Multiple recipes can be used for different purposes: apache2.prefork, apache2.worker, etc.. Thursday, March 17, 2011
  • 11. Recipe A recipe is a “script” that defines resources. Each recipe receives a global ‘env’ which is the current Environment/Kitchen. A cookbook can have a ‘default.py’ recipe which is the one used if no recipe specified. env.include_recipe(“memcached”) vs env.include_recipe(“munin.node”) Thursday, March 17, 2011
  • 12. Demo http://github.com/samuel/kokki-pywebsf-demo Thursday, March 17, 2011
  • 13. Current Limitations Currently only supports Debian/Ubuntu easy to support other platforms, just isn’t done No client/server Small userbase No documentations Thursday, March 17, 2011
  • 14. Roadmap Better documentation Client/server Cloud tools (automate EC2 instances) More platforms (though probably not Windows) Pick a different theme? (enough with the cooking/chefs) Thursday, March 17, 2011
  • 15. Thanks! Questions? http://github.com/samuel/kokki http://github.com/samuel/kokki-pywebsf-demo https://convore.com/kokki/ samuel@descolada.com Thursday, March 17, 2011